JAVA和PHP通用的加解密整理版

发表于:2013-9-13 10:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:happyrabbit456    来源:51Testing软件测试网采编

  2:PHP版本(3DES)

  3des的已经不再使用了,因此没有专门整理成类

  凑活看吧哈哈

function pkcs5_pad($text, $blocksize)
{
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text)
{
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text))
{
return false;
}
if( strspn($text, chr($pad), strlen($text) - $pad) != $pad)
{
return false;
}
return substr($text, 0, -1 * $pad);
}
$key = "AKlMU89D3FchIkhKyMma6FiE";
//$key = pack("H48", $key);
$iv = "0102030405060708";
$iv = pack("H16", $iv);
$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_ECB, '');
mcrypt_generic_init($td, $key, $iv);
$str = base64_encode(mcrypt_generic($td,pkcs5_pad("1qaz2ws",8)));
echo $str ."";
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_ECB, '');
mcrypt_generic_init($td, $key, $iv);
$ttt  = pkcs5_unpad(mdecrypt_generic($td, base64_decode($str)));
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
echo $ttt;
exit;

  3:JAVA版本(AES)

  将代码1中的如下行修改

/*密钥为16的倍数*/
private static String keyString = "AKlMU89D3FchIkhK";//密钥
/*AES算法*/
secretKey = new SecretKeySpec(keyString.getBytes(), "AES");//获得密钥
/*获得一个私鈅加密类Cipher,DESede-》AES算法,ECB是加密模式,PKCS5Padding是填充方式*/
cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号