相关疑难解决方法(0)

如何从AES加密字符串添加/删除PKCS7填充?

我正在尝试使用128位AES加密(ECB)加密/解密字符串.我想知道的是如何添加/删除PKCS7填充.似乎Mcrypt扩展可以处理加密/解密,但必须手动添加/删除填充.

有任何想法吗?

php encryption aes mcrypt pkcs#7

18
推荐指数
2
解决办法
4万
查看次数

Coldfusion 3DES加密使得加密结果与PHP`mcrypt_encrypt`不同

起初,Coldfusion加密:

<cfset message = '1447841550'>
<cfset key = 'Mk9m98IfEblmPfrpsawt7BmxObt98Jev'>

<cfset ciphertext = Encrypt(#message#, #key#, "desede", "base64")>
<cfoutput>#ciphertext#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

然后,PHP mcrypt:

$message = "1447841550";
$key = 'Mk9m98IfEblmPfrpsawt7BmxObt98Jev';

$key = base64_decode($key);

$bytes = array(0,0,0,0,0,0,0,0); //byte [] IV = {0, 0, 0, 0, 0, 0, 0, 0}
$iv = implode(array_map("chr", $bytes));

$ciphertext = mcrypt_encrypt(MCRYPT_3DES, $key, $message, MCRYPT_MODE_CBC, $iv);

echo base64_encode($ciphertext);
Run Code Online (Sandbox Code Playgroud)

问题.

在相同的字符串中,相同的算法和相同的编码.

仍然有一小部分输出不匹配.

以下是真实的样本输出.

// Coldfusion output.

n6lp0I1w5FwrP3yPw3s8bw== 

^^^^^^^^^^

Same part


// PHP output.

n6lp0I1w5FxLQHskKMn4sw==

^^^^^^^^^^

Same part
Run Code Online (Sandbox Code Playgroud)

为什么Coldfusion会产生不同的结果?

如果不修改PHP代码,我怎么能在Coldfusion中产生相同的结果.PHP输出对我来说是正确的输出.

是否可以使用javascript获得正确的结果(PHP)?这个解决方案也很好.

我很沮丧.

php encryption coldfusion mcrypt

5
推荐指数
1
解决办法
308
查看次数

PHP ColdFusion9 AES加密 - 结果不同

PHP和ColdFusion9中的AES加密产生了不同的结果.有人可以帮帮我吗?

以下PHP代码

$key = "12345678123456781234567812345678";
$iv = "1234567812345678";
$data = "This is a plain string.";

echo base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv));
Run Code Online (Sandbox Code Playgroud)

给我G + tdEOfQTtVCQGxW3N5uzkqN207OyfIPxS6zf2xrKKY =

而下面的ColdFusion代码

<cfset thePlainData  = "This is a plain string." />
<cfset theKey    = "12345678123456781234567812345678" />
<cfset theAlgorithm  = "AES/CBC/PKCS5Padding" />
<cfset theEncoding  = "base64" />
<cfset theIV    = "1234567812345678" />

<cfset encryptedString = encrypt(thePlainData, theKey, theAlgorithm, theEncoding, theIV) />
Run Code Online (Sandbox Code Playgroud)

给我KLt55n5/T3ee6xVq9VGFbyCacJznkHEqC/RDRhL + 4nw =

知道我哪里错了吗?提前致谢.

php encryption coldfusion aes

2
推荐指数
1
解决办法
1467
查看次数

标签 统计

encryption ×3

php ×3

aes ×2

coldfusion ×2

mcrypt ×2

pkcs#7 ×1