PHP - 使用Unix时间戳作为密钥?

时间:2011-09-21 03:39:32

标签: php encryption hash timestamp aes

所以,我最近一直在研究加密,我听说有人使用时间戳作为加密密钥。我认为这是一个好主意,但如果我想解密数据,我将如何检索该特定时间戳?时间戳是唯一的,我不确定这是如何工作的。

编辑: 我正在使用PHP和MYSQL

5 个答案:

答案 0 :(得分:2)

呃,通常使用时间戳作为生成键的基础 - 而不是键本身。如果您希望能够解密数据,那么关键是您必须存储的内容。

答案 1 :(得分:0)

唯一的方法是保存时间戳。 (假设您的加密没有后门,这会使其无效)

我要做的是将时间戳与加密字符串一起以不同的格式保存Ex:09/21/2011 03:09:53并使用strtotime()和salting的组合将两个信息位存储在一个安全的庄园中。

09/21/2011 03:09:53变为13165--Salt--74593

答案 2 :(得分:0)

这里有两个问题。

您需要在某处存储时间戳。那么为什么不使用“rand()”并存储它。

可以在现代多线程,多核处理器上获得数百个重复的时间戳。所以你也可以使用date()。

答案 3 :(得分:0)

时间戳会生成糟糕的键。一个程序可以在眨眼之间闪现所有可能的键。

时间通常用于启动随机数生成器的组件。但它不能是唯一不能用作密钥的组件。

时间可以半成功地用作散列算法的盐。它仍然不如随机的那么好,因为它允许攻击者提前生成彩虹表。

答案 4 :(得分:0)

我不想伤害你的感情,但是......

很明显,你从未研究过加密。

所以, 不要设计自己的加密协议,也不要自己组装加密基元(就像“WiFi”设计师/业余爱好者密码学家对WEP所做的那样)

旨在实现特定安全目标的协议(我并非故意说“安全协议”)是由专家发明和实施的。

首先需要定义安全目标,然后选择适当的协议。