两个关键的加密算法

时间:2012-07-23 14:18:03

标签: php encryption

有没有安全的加密算法,你可以用这种方式吗?

<?php

   $message="Hi there!";

   $key1="ablablabla";

   $key2="fooboomoohoo";

   $tmp=encrypt($message,$key1);

   $tmp=encrypt($tmp,$key2);

   $tmp=decrypt($tmp,$key1);

   $result=decrypt($tmp,$key2);

   echo "\"".$message."\" is the same as \"".$result."\"";

?>

它应该像这样工作:

  1. 用户想要向服务器发送加密消息,因此他使用他的密钥对其进行加密

  2. 服务器获取加密消息,因此他使用自己的密钥再次对其进行加密并将其发回

  3. 用户使用密钥解密邮件并将其发回

  4. 最后,服务器解码消息

2 个答案:

答案 0 :(得分:0)

您似乎在询问是否存在具有可交换密钥的加密方案。例如,请参阅this stackoverflow question

肯定存在这样的交换系统。一个简单的例子是Caesar Cypher(即通过 n 位置在字母表中移动字母,其中 n 是关键字)。就安全方案而言 - 安全在这里是相当主观的 - 密钥的交换属性确实存在于更复杂的层面。这样的示例可以参见here,其中讨论了为什么RSA对于公共n 是可交换的。 (注意:常见的n不常见。)

答案 1 :(得分:0)

像RC4这样的流密码怎么样?

加密和解密涉及与PRNG输出的XOR。 (实际上解密与加密相同。)

$tmp=encrypt($message,$key1); // tmp = P ^ A
$tmp=encrypt($tmp,$key2);     // tmp = p ^ A ^ B
$tmp=decrypt($tmp,$key1);     // tmp = p ^ A ^ B ^ A = p ^ B
$result=decrypt($tmp,$key2);  // result = p ^ B ^ B = p