6
回答
RSA到底怎么用?对应一个应用场景
【腾讯云】学生服务器套餐10元/月 >>>   

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

<无标签>
举报
白小衣
发帖于3年前 6回/1K+阅
共有6个答案 最后回答: 3年前

先说一些基础的东东吧,加密和解密是为了信息在传递过程中被他人知晓,对明文所做的混淆,看你举的这个场景,我感觉你对加密这一套的理解还有些欠缺。再多在网上学习一下吧。不过大体上也可以回答你的两个问题。

Q:比如一个系统我要加密用户密码,是不是我整个系统只需要一对公匙私匙?还是每个密码要一对

A: 不管是对称加密算法如AES的密钥(一个)还是非对称加密算法RSA的密钥(一对), 当然只需要一个(一对),要多个也没有意义,因为一个(一对)已经安全了哈。

Q: 然后数据库是保持加密得到的byte二进制数组吗还是保存什么,时应该前台页面用公匙把密码加密吗?

A: 当然是保存密文,反正看起来是乱码,当然你理解成BYTE数组也行。因为你选的是RSA一对密钥,所以你任选一个来加密,另一个解密就行了。

--- 共有 1 条评论 ---
白小衣非常感谢 3年前 回复
保存密码请用单向散列函数,不要用任何可逆算法,即使被爆库也拿不到明文。RSA主要的作用是防止消息被篡改,具体应用可以百度,存密码侧重的是防止明文暴露。
--- 共有 1 条评论 ---
白小衣这个场景只是举例,主要是后面那几个问题啊。求大神指点指点 3年前 回复
系统用户的加密是用的是MD5加密,然后存入数据库,用户登录的时候就将用户输入的密码MD5加密然后和数据库的数据比对,如果相同就登录成功
像 散列(HASH)这种映射算法,仅仅是为了不明文保存数据而已,是不可逆的,不能从密文(映射值)中还原出明文。所以它也不应该归为加密算法一类。
密码用 md5 处理是绝对错误的,应该用 bcrypt 或者 scrypt
--- 共有 2 条评论 ---
kchr绝对。即使加 salt 的 md5 也是极度不可靠的。 建议使用 bcrypt,用得很广。scrypt 更强,但相关的密码学分析还不多。 3年前 回复
白小衣这么绝对么。。 你说那两种我都没接触过。 3年前 回复
顶部