0

有什么安全的加密算法可以让我以这种方式使用吗?

<?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. 最后,服务器对消息进行解码

4

2 回答 2

0

您似乎在询问是否有带有交换密钥的加密方案。例如,参见这个 stackoverflow question

当然有这样的交换系统。一个简单的例子是凯撒密码(即把字母表中的字母移动n 个位置,其中n是键)。就安全方案而言——这里的安全是相当主观的——密钥的交换属性确实存在于更复杂的层面。这样的例子可以在这里看到,它讨论了为什么 RSA对公共 n是可交换的。(注意:common n 不常见。)

于 2012-07-23T15:34:54.413 回答
0

像 RC4 这样的流密码呢?

加密和解密涉及与 PRNG 输出的异或。(其实解密和加密是一样的。)

$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
于 2012-07-24T17:01:51.240 回答