在Android应用程序中,有哪些好的密码哈希方法?
我正在创建一个应用程序,要求用户向远程服务器注册,但我想在发送密码并将其存储在我的数据库之前对其进行哈希运算在Android应用程序中,有哪些好的密码哈希方法?,android,passwords,Android,Passwords,我正在创建一个应用程序,要求用户向远程服务器注册,但我想在发送密码并将其存储在我的数据库之前对其进行哈希运算 我尝试使用jBCrypt库,但它在散列时造成了很长的挂起时间。还有其他选择吗?在不造成明显挂起的情况下散列密码的最佳(也是最安全)方法是什么?避免不惜一切代价保存第三方密码。保存它们被认为是一种网络钓鱼。尝试保存身份验证令牌,而不是使用OAuth之类的方法获得的原始密码 如果您确实需要向Web服务器上的数据库发送密码,只需使用HTTPS即可。这将确保通过电线进行安全加密。然后可以根据需要
我尝试使用jBCrypt库,但它在散列时造成了很长的挂起时间。还有其他选择吗?在不造成明显挂起的情况下散列密码的最佳(也是最安全)方法是什么?避免不惜一切代价保存第三方密码。保存它们被认为是一种网络钓鱼。尝试保存身份验证令牌,而不是使用OAuth之类的方法获得的原始密码
如果您确实需要向Web服务器上的数据库发送密码,只需使用HTTPS即可。这将确保通过电线进行安全加密。然后可以根据需要在数据库中加密密码。此方法还可以确保加密机制不在设备本身上,而设备本身更容易受到破坏。您的方法似乎是错误的。除非您有一些特殊要求,否则通常的做法如下(对于任何web应用程序,不是特定于Android):
简而言之,你应该在服务器上进行哈希运算,而不是在Android设备上。目前我正在做的是:注册:获取密码输入,对其进行哈希运算,将其发送到服务器,然后存储。登录:获取密码输入,散列,发送到服务器,比较你是说我应该用SSL发送明文密码,然后在服务器上散列?我的域不需要SSL证书吗?是的。请注意,您现在所做的是不安全的:如果有人截获流量,他们会得到哈希值,而不是实际密码,但他们并不真正需要它。只要攻击者拥有哈希,他们就可以将其发送到您的服务器并成功登录,而不需要知道密码。请务必使用SSL。@DanielA.White:这不要求我拥有有效的SSL证书吗?我目前没有这些证书。@WilHall更不用说,SSL证书很昂贵。