首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个手术有多安全?

这个手术有多安全?
EN

Stack Overflow用户
提问于 2011-02-18 14:14:43
回答 3查看 141关注 0票数 1

我将使用这种方法来存储我的密码:

password

  • Application
  1. 用户使用随机数
  2. 输入

盐类密码,然后用加密算法加密随机选择的数据数组(由预定义的字符/字节表组成)

  • ,为了简单起见,它可以只使用数字表,因此在数字随机数组的情况下,只需足够长的整数/字节。

然后,我将

  1. 存储在DB salt (修改值)和加密数组

中。

要检查密码的有效性:

从DB中获得password

  • Read盐的
  1. ,并计算解密密钥
  2. ,尝试解密加密的数组
  3. ,如果成功(在数学上)按字节比较解密值字节,
    • 是否只包含已知表中的字符/字节。例如,它是整数/双元组吗?如果是的话-密码算作valid

你觉得这个程序怎么样?

用几句话来说,这是使用散列函数的一种替代.

在这种方法中,加密算法即将用于非可逆值的计算。

编辑

代码语言:javascript
复制
# 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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-21 04:34:30

与简单地存储密码和salt的散列相比,所提议的方案充其量只是略低于安全性。

这是因为加密步骤简单地为检查每个哈希值是否正确增加了一小部分恒定的时间;但同时它也引入了等效散列类,因为ARRAY存在多个可能的排列,这些排列将被认为是有效的。

票数 1
EN

Stack Overflow用户

发布于 2011-02-18 14:53:40

从您所写的内容来看,我假设您希望执行以下操作:

代码语言:javascript
复制
# You have some encryption function that works like this
CYPHERTEXT = ENCRYPT(PLAINTEXT, KEY)
PLAINTEXT = DECRYPT(CYPHERTEXT, KEY)

# Encrypting the password when entered
ENCRYPTED_TABLE = ENCRYPT(SOME_TABLE, PASSWORD + SALT)

# Checking validity
DECRYPT(ENCRYPTED_TABLE, PASSWORD + SALT) == SOME_TABLE

首先:没有一个理智的人会在生产系统中使用这样的自制方案。所以,如果你想在现实世界中真正实现这一点,请回到过去。甚至不要尝试自己编写代码,使用一个经过验证的实现被广泛接受的算法的软件库。

现在,如果你想把它看作是一种心理锻炼,你可以这样开始:

如果您假设攻击者将知道方程的所有部分,但实际密码除外。因此,希望检索密码的攻击者将已经知道加密的文本、明文和部分密码。

成功的机会将取决于实际的加密方案,也许是链接模式。

我自己也不是一个密码分析师,但我没有想太多,我觉得可能有很多攻击的角度。

票数 2
EN

Stack Overflow用户

发布于 2011-02-18 14:17:39

每次有人登录时,你都要强行对每个密码进行加密。

从DB读取salt并计算解密密钥

这是不可能做到的,除非你知道密码在手边。

只需对密码进行盐(和多个散列)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5042321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档