加密 AES 128
Encryption AES 128
我在工作中被要求按照以下说明实现对简单网络服务的请求:
AES加密:
类型:欧洲央行
大小:128位
填充模式:PKCS7
密钥:9b6018215942b2e1da3797d3394779bf
在文档中(只是一个给定的例子)他们说对于字符串:
2874838-49
加密过程必须生成:
BEE361962A1802A7BA2AD328DAE8B291
我一直在寻找类似的东西,但是 none 给出的解决方案(如 here, here here 等)帮助我实现了给出的示例结果。
这是我现在尝试的最后一件事:
function aes128Encrypt($data, $key) {
$padding = 32 - (strlen($data) % 32);
$data .= str_repeat(chr($padding), $padding);
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_ECB));
}
$data = "2874838-49";
$key = "9b6018215942b2e1da3797d3394779bf";
echo aes128Encrypt($data, $key); // UdP7dXSTp6b5I986PLL8Gs3qH3rMj0SpQ0te4pP7M44=
编码算法returns返回给你的编码数据的字节流。
您的示例不提供数据的 base64 编码变体,而是十六进制表示形式。
在你的情况下,只需换掉 base64_encode for bin2hex,答案应该匹配。
function aes128Encrypt($data, $key) {
$padding = 32 - (strlen($data) % 32);
$data .= str_repeat(chr($padding), $padding);
return bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_ECB));
}
$data = "2874838-49";
$key = "keyshouldbeplacedhere";
echo aes128Encrypt($data, $key);
我在工作中被要求按照以下说明实现对简单网络服务的请求:
AES加密:
类型:欧洲央行
大小:128位
填充模式:PKCS7
密钥:9b6018215942b2e1da3797d3394779bf
在文档中(只是一个给定的例子)他们说对于字符串:
2874838-49
加密过程必须生成:
BEE361962A1802A7BA2AD328DAE8B291
我一直在寻找类似的东西,但是 none 给出的解决方案(如 here, here here 等)帮助我实现了给出的示例结果。
这是我现在尝试的最后一件事:
function aes128Encrypt($data, $key) {
$padding = 32 - (strlen($data) % 32);
$data .= str_repeat(chr($padding), $padding);
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_ECB));
}
$data = "2874838-49";
$key = "9b6018215942b2e1da3797d3394779bf";
echo aes128Encrypt($data, $key); // UdP7dXSTp6b5I986PLL8Gs3qH3rMj0SpQ0te4pP7M44=
编码算法returns返回给你的编码数据的字节流。
您的示例不提供数据的 base64 编码变体,而是十六进制表示形式。
在你的情况下,只需换掉 base64_encode for bin2hex,答案应该匹配。
function aes128Encrypt($data, $key) {
$padding = 32 - (strlen($data) % 32);
$data .= str_repeat(chr($padding), $padding);
return bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_ECB));
}
$data = "2874838-49";
$key = "keyshouldbeplacedhere";
echo aes128Encrypt($data, $key);