我打算用这种方法来存储我的密码:用盐渍密码加密这个程序有多安全?
- 用户用随机数输入密码
- 申请盐密码
- 然后用一些加密算法随机选取的数组的数据(由从字符/字节预定表)
- 为简单起见,可以使用刚刚的数字表,所以在数字情况下,随机阵列将被简单地足够长整数/ BigInteger的。
- 然后我存储在DB盐(修改值)和加密的阵列
要检查密码有效期:
- 入门给定的密码从DB
- 阅读盐和计算解密密钥
- 尝试解密加密阵列
- 如果全成(在数学米EAN)比较由字节
- 做它包含来自已知表只字符/字节解密值字节。例如它是整数/大整数?如果是这样的 - 为有效
,你怎么看待这个程序密码计数?
几句话,这是一种替代使用散列函数的...
在这种方法加密算法要被用于非可逆值计算。
编辑
# Encrypt/decrypt function that works like this:
KEY=HASH(PASSWORD)
CYPHERTEXT = ENCRYPT(PLAINTEXT, KEY)
PLAINTEXT = DECRYPT(CYPHERTEXT, KEY)
# Encrypting the password when entered
KEY=HASH(PASSWORD)+SALT or HASH(PASSWORD+SALT)
ARRAY={A1, A2,... AI}
SOME_TABLE=RANDOM({ARRAY})
ENCRYPTED_TABLE = ENCRYPT(SOME_TABLE, KEY + SALT)
# Checking validity
DECRYPT(ENCRYPTED_TABLE, PASSWORD + SALT) == SOME_TABLE
if(SOME_TABLE contains only {ARRAY} elements) = VALID
else INVALID
为什么?使用散列函数+盐有什么问题? – 2011-02-18 15:42:54
没有错......只是试图发明轮子:) – barmaley 2011-02-18 16:21:47