2017-04-10 138 views
1

嘿家伙我已经做了一些关于加密的研究,并了解它是如何工作的以及它由什么组成,但我还没有完全理解如何实现密码加密。cordova密码加密

我试图加密正在发送到我的数据库的密码,我该如何实现?

谢谢你提供的家伙,我不得不看看哈希表中的信息, 我在假设哈希表基本数值转换为例如不同的值修正:

VAR哈希表= { 1:[1,10,5],2:[2],3:[3,30,300]}

然后将新值传递给数据库?

希望任何和所有的帮助在此先感谢!

+1

要知道的第一件也是最重要的事情是,你绝不应该*加密*密码,你应该*加密*它们 - 不同之处在于加密意味着你有解密它们的方法,但是哈希表示你只能比较输入,并说出它是否匹配,而不能恢复原始数据。 – IMSoP

+1

**不要加密密码**,当攻击者获取数据库时,他也会得到加密密钥。使用随机盐在HMAC上迭代大约100毫秒的持续时间,并用散列表保存盐。使用诸如'password_hash','PBKDF2','Bcrypt'或类似函数的函数。关键是要让攻击者花费大量时间通过强力查找密码。 – zaph

+0

感谢您的解释家伙我很感激它,让我看看我能找到什么哈希和如何实现= D –

回答

0

不要加密密码,当攻击者获取数据库时,他也会得到加密密钥。

只使用散列函数是不够的,只是添加盐没有提高安全性。取而代之的是用随机盐对HMAC进行大约100毫秒的持续时间并用散列表保存盐。使用诸如PBKDF2,Rfc2898DeriveBytes,password_hash,Bcrypt或类似功能的功能。关键是要让攻击者花费大量时间通过强力查找密码。

Cryptographic hash functions比问题中的示例复杂得多,它们的输出不能与随机位/字节区分开来,输入上的一位变化本质上导致50%或输出位发生变化,而且它们不可逆。

+0

谢谢Zaph真的很感谢帮助伟大的答案。 –