【发布时间】:2011-11-21 14:24:15
【问题描述】:
所以,我最近一直在研究加密,我听说有人使用时间戳作为加密密钥。我认为这是一个好主意,但如果我想解密数据,我将如何检索那个特定的时间戳?时间戳是独一无二的,我不确定它是如何工作的。
编辑: 我正在使用 PHP 和 MYSQL
【问题讨论】:
-
将其存放在某处并使用。顺便说一句,这是个糟糕的主意。
标签: php encryption hash timestamp aes
所以,我最近一直在研究加密,我听说有人使用时间戳作为加密密钥。我认为这是一个好主意,但如果我想解密数据,我将如何检索那个特定的时间戳?时间戳是独一无二的,我不确定它是如何工作的。
编辑: 我正在使用 PHP 和 MYSQL
【问题讨论】:
标签: php encryption hash timestamp aes
呃,通常时间戳被用作生成密钥的基础——而不是密钥本身。如果您希望能够解密数据,则必须存储密钥以供以后使用。
【讨论】:
mcrypt_encrypt() 和 mcrypt_decrypt())。
这里有两个问题。
您需要将时间戳存储在某处。那么为什么不直接使用“rand()”并存储它呢。
在现代多线程、多核处理器上可以获得数百个重复的时间戳。所以你也可以直接使用 date()。
【讨论】:
唯一的方法是保存时间戳。 (假设您的加密没有后门,这将使其目的无效)
我要做的是以不同的格式保存时间戳和加密字符串,例如:09/21/2011 03:09:53,并结合使用strtotime() 和加盐将这两个信息位存储在一个安全的庄园中。
09/21/2011 03:09:53 变为 13165--Salt--74593
【讨论】:
时间戳使 糟糕 键。一个程序可以在眨眼之间完成所有可能的键。
这个时候经常使用一个组件来启动一个随机数生成器。但是,它不能是唯一的组件,因为它不能用作键。
时间可以半成功地用作散列算法的盐。它仍然不如随机的东西,因为它允许攻击者提前生成彩虹表。
【讨论】:
我不想伤害你的感情,但是……
很明显你从来没有学过密码学。
所以,请 不要设计自己的密码协议,也不要自己组装密码原语(就像“WiFi”设计师/业余密码学家对 WEP 所做的那样) .
专为满足特定安全目标而设计的协议(我并不是故意说“安全协议”)已由专家发明和实施。
您首先需要定义您的安全目标,然后选择适当的协议。
【讨论】: