有没有安全的加密算法,你可以用这种方式吗?
<?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."\"";
?>
它应该像这样工作:
用户想要向服务器发送加密消息,因此他使用他的密钥对其进行加密
服务器获取加密消息,因此他使用自己的密钥再次对其进行加密并将其发回
用户使用密钥解密邮件并将其发回
最后,服务器解码消息
答案 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