DES加密

时间:2008-11-02 16:12:40

标签: php encryption des

DES加密是“单向加密”还是“双向加密”? 是否有PHP类或方法解密DES加密? 感谢

6 个答案:

答案 0 :(得分:4)

php crypt函数是一种单向散列函数,如果您希望能够解密,请查看支持mcrypta range of algorithms扩展名

答案 1 :(得分:3)

应该注意的是DES算法存在(并且一直存在)问题。它已经被广泛使用了很长时间,但由于它最初仅使用56位密钥指定,因此它是否足够安全,以至于此时的任何重要用途都是值得怀疑的。三重DES通常更好,但有一些已知的理论攻击。如果您可以选择密码,则可能需要查看AES

答案 2 :(得分:2)

DES可以颠倒,所以它是双向加密(如果你的意思)。

DES是一个众所周知的加密标准,所以它也应该在PHP中使用。

答案 3 :(得分:2)

单向加密哈希的安全形式:明文被转换为明显随机的数据序列,通常具有固定长度,以这种方式如果没有蛮力的努力,原始的明文(理论上)就无法获得。

双向加密可逆加密是我们通常所说的术语加密:明文转换为明显随机的数据,但是依赖于允许检索原始明文的“密钥”。

DES是一种可逆加密形式,按照今天的标准相对较弱,因为它依赖于56位密钥(14个十六进制字符)。它已经被3DES或三重DES所取代,后者基本上与具有更长密钥的算法相同。

您没有提及您的应用程序,但如果您只需要比较数据而不是检索它,则哈希被认为更安全。例如,您可以存储散列密码;然后,当用户进行身份验证时,对输入的文本执行相同的哈希,并将其与存储的哈希值进行比较。如果匹配,则输入正确的密码。

散列的一个显着优点是您不需要存储解密密钥。

答案 4 :(得分:-1)

我不熟悉“单向加密”或“双向加密”术语。有一个术语“一次性密码”(与DES完全无关),并且有“对称”和“不对称”加密算法,这意味着相同的密钥是用于加密和解密(对称)还是一组两个不同的密钥用于加密,另一个用于解密(不对称)。 DES是一种对称算法。至于PHP,crypt()从那时起就开始了:

http://us2.php.net/crypt

答案 5 :(得分:-1)

我认为你可能意味着单向函数[1]。在密码学中,人们可以区分对称密码学和非对称密码学。对称加密使用相同的密钥进行加密和解密(DES是对称的)。非对称密码术用于密钥交换,公钥用于加密消息,而私钥用于解密。非对称密码学的一个例子是AES [2]。非对称加密使用单向函数。

[1] http://en.wikipedia.org/wiki/One-way_function [2] http://en.wikipedia.org/wiki/AES