<?php
$key = "thisiskey";
function encrypt($encrypt) {
global $key;
$encrypt = pkcs5_pad($encrypt);
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_RAND);
$passcrypt = mcrypt_encrypt(MCRYPT_DES, $key, $encrypt, MCRYPT_MODE_CBC, $iv);
$encode = base64_encode($passcrypt);
return $encode;
//return bin2hex($passcrypt);
}
function pkcs5_pad($text)
{
$len = strlen($text);
$mod = $len % 8;
$pad = 8 - $mod;
return $text.str_repeat(chr($pad),$pad);
}
echo encrypt('thisistext');
exit;
运行结果是 VX2gnZbjSLVU5an1Z97GIw==
但是最后结果跟
http://www.tero.co.uk/des/code.php 上的des加密算法输出不一样
用tero这个网址所用的代码运行
<?php
error_reporting(E_ALL ^E_NOTICE);
$key = "thisiskey";
$message = "thisistext";
$ciphertext = des ($key, $message, 1, 0, null,'');
echo "DES Test Encrypted: " . base64_encode ($ciphertext);
结果 是 DES Test Encrypted: PzsmwkLug7E0Me2iHC+LHg==
有没有高手来看一下问题出在哪里?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/93634
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.