在android中使用AES进行加密,在Java中使用解密

在android中使用AES进行加密,在Java中使用解密,java,android,encryption,Java,Android,Encryption,我已经成功地在android中加密了密码字符串,并将其发送到存储在数据库中的服务器,现在为了实现“忘记密码”,我们需要在java中解密相同的“加密密码” 在android中使用此库进行加密/解密: com.scottyab:aescrypt:0.0.1 感谢您的帮助。 提前谢谢。你做错了(不安全) 不要加密客户端上的密码,通过HTTPS和POST请求以纯文本形式将密码发送到服务器 不要在服务器上加密密码,请使用密码安全哈希方法(请参阅我的评论),该方法包括salt和and迭代,以便哈希时间为~1

我已经成功地在android中加密了密码字符串,并将其发送到存储在数据库中的服务器,现在为了实现“忘记密码”,我们需要在java中解密相同的“加密密码”

在android中使用此库进行加密/解密: com.scottyab:aescrypt:0.0.1

感谢您的帮助。 提前谢谢。

你做错了(不安全)

  • 不要加密客户端上的密码,通过HTTPS和POST请求以纯文本形式将密码发送到服务器

  • 不要在服务器上加密密码,请使用密码安全哈希方法(请参阅我的评论),该方法包括salt和and迭代,以便哈希时间为~100ms。您将无法访问原始密码,这很好,因为攻击者也无法访问。是的,将有攻击者,他们将获得管理员访问权,计划它

  • 对于密码重置,请向用户发送有时间限制的重置令牌,以用于创建新密码


  • 注意:请在服务器上使用双因素身份验证,并严格限制有权访问的人数。

    与其解密现有密码,不如执行以下操作之一:1。生成一个新密码并发送给用户wha应在登录时更改此密码。2.为用户提供一个输入新密码的界面,对其进行加密并在数据库中替换。最好对密码进行散列,而不是加密。加密密码对安全性非常有害,如果你花几个小时分析apkAs@GriffeyDog说使用哈希不加密不加密密码,当攻击者获得DB时,他还将获得加密密钥。用随机盐在HMAC上迭代大约100毫秒,并用散列保存盐。使用诸如
    password\u hash
    PBKDF2
    Bcrypt
    等函数和类似函数。关键是让攻击者花费大量时间通过暴力手段查找密码。