Python能否识别Java中使用BCrypt的哈希密码?
我计划使用bcrypt散列用户密码,并将这些散列密码存储在数据库中
处理用户帐户创建并将哈希密码插入数据库的服务器是用Java编写的
另一个需要访问用户信息(包括散列密码)的服务器是用Python编写的
我本来打算在Java端使用jBCrypt,但在此之前,我想确保能够从Python端识别/使用这些哈希密码
从我的理解来看,只要pythonbcrypt实现与Java实现相同,这应该没有问题
那么,我可以使用Python中使用jBCrypt散列的密码吗?怎么做
提前谢谢
# 1 楼答案
了解的最好方法是实际尝试。 假设两种实现都是正确的,它们应该是兼容的,只要您注意根据需要重新编码数据
通常,散列以原始散列的字节数组或ASCII十六进制表示形式存储在内存中。要知道它使用的是什么编码,最好的方法是将它打印到控制台:如果它看起来像垃圾,它将是一个原始字节数组;如果它打印一个十六进制字符串(0-9和a-f),则它是ascii编码的十六进制
盐可能会像土豆泥一样储存起来。轮数是一个整数。所有这些数据是否以通用格式存储取决于您。如果需要在python中将ascii十六进制字符串转换为字节数组(实际上是字符串),可以使用字符串。编码:
对于python中的bcrypt实现,您可能希望尝试py-bcrypt