开发者社区> 问答> 正文

RSA到底怎么用?对应一个应用场景报错 

我知道怎么去实现加密解密这个代码过程,但是不明白对应到实际应用中怎么用,比如一个系统我要加密用户密码,是不是我整个系统只需要一对公匙私匙?还是每个密码要一对;然后数据库是保持加密得到的byte二进制数组吗还是保存什么,时应该前台页面用公匙把密码加密吗?

展开
收起
kun坤 2020-06-03 11:20:54 603 0
1 条回答
写回答
取消 提交回答
  • 先说一些基础的东东吧,加密和解密是为了信息在传递过程中被他人知晓,对明文所做的混淆,看你举的这个场景,我感觉你对加密这一套的理解还有些欠缺。再多在网上学习一下吧。不过大体上也可以回答你的两个问题。
    Q:比如一个系统我要加密用户密码,是不是我整个系统只需要一对公匙私匙?还是每个密码要一对
    A: 不管是对称加密算法如AES的密钥(一个)还是非对称加密算法RSA的密钥(一对), 当然只需要一个(一对),要多个也没有意义,因为一个(一对)已经安全了哈。
    Q: 然后数据库是保持加密得到的byte二进制数组吗还是保存什么,时应该前台页面用公匙把密码加密吗?
    A: 当然是保存密文,反正看起来是乱码,当然你理解成BYTE数组也行。因为你选的是RSA一对密钥,所以你任选一个来加密,另一个解密就行了。 ######非常感谢######保存密码请用单向散列函数,不要用任何可逆算法,即使被爆库也拿不到明文。RSA主要的作用是防止消息被篡改,具体应用可以百度,存密码侧重的是防止明文暴露。######这个场景只是举例,主要是后面那几个问题啊。求大神指点指点######你的应用场景用散列就行,没必要可逆。

    ######这个场景只是举例,主要是后面那几个问题啊。求大神指点######系统用户的加密是用的是MD5加密,然后存入数据库,用户登录的时候就将用户输入的密码MD5加密然后和数据库的数据比对,如果相同就登录成功######像 散列(HASH)这种映射算法,仅仅是为了不明文保存数据而已,是不可逆的,不能从密文(映射值)中还原出明文。所以它也不应该归为加密算法一类。

    ######密码用 md5 处理是绝对错误的,应该用 bcrypt 或者 scrypt

    ######绝对。即使加 salt 的 md5 也是极度不可靠的。 建议使用 bcrypt,用得很广。scrypt 更强,但相关的密码学分析还不多。######这么绝对么。。 你说那两种我都没接触过。

    2020-06-03 11:21:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
阿里开发者手册-Redis专题 立即下载
Redis的开发规范和常见问题 立即下载