需要加密才能在数据库中存储值

时间:2015-02-03 21:47:42

标签: javascript encryption cryptojs

见这里:https://code.google.com/p/crypto-js

哪种加密方法最适合在数据库中存储加密值?我需要一些加密方法,让进程每次都以相同的方式来回转换字符串。

例如:“sadfjpihdsf3njdasf”会转换为“hello world”,“hello world”会转换为“sadfjpihdsf3njdasf”。我尝试过的加密方法似乎每次都给我一个不同的加密字符串。

这样做的目的主要是降低存储在安全数据库中的密码的可见性,因此所涉及的安全级别相当基本。

2 个答案:

答案 0 :(得分:2)

CryptoJS中的所有对称密码都可以按照您描述的方式使用。每次看到不同值的原因是每次都会生成一个新的随机IV。您可以自己为here所见的每个唯一值生成IV。

通常,密码不是加密的,而是用盐迭代地进行哈希处理。因此,当用户下次进行身份验证时,应用程序可以对输入的密码进行哈希处理并检查值是否匹配。 salt和迭代次数将存储在其他列中或散列的旁边。

如果您想在客户端或JavaScript可运行的任何地方执行此操作,CryptoJS为此案例提供了良好的哈希方法,因为CryptoJS基本上没有依赖项:PBKDF2

答案 1 :(得分:1)

当您通过不安全的渠道(WiFi或可能被嗅探的数据线)移动信息时,或者您希望存储只有选定的一组人应该访问的文档时,您可能希望对信息进行加密。

对于那些应用程序,您应该检查该库提供的密码(并调查每个密码以考虑它们的优缺点)。

但是对于登录实现,没有合理的理由能够解密用户密码。没有人应该能够检索密码。标准程序是" hash"密码。

喜欢'让我吃掉你的密码,消化它,然后存储剩下的东西'。 当用户想要使用您的应用程序进行身份验证时,您可以使用他/她提供的密码执行相同的操作,并比较“剩下的'用你的数据库中的东西。

仔细阅读https://crackstation.net/hashing-security.htm