等于C#和PHP中的加密/解密
有人能帮我解密用PHP加密的数据吗 在PHP im使用函数中:等于C#和PHP中的加密/解密,c#,php,cryptography,aes,C#,Php,Cryptography,Aes,有人能帮我解密用PHP加密的数据吗 在PHP im使用函数中: public function encryptString($str) { $block = mcrypt_get_block_size('rijndael_128', 'ecb'); $pad = $block - (strlen($str) % $block); $str .= str_repeat(chr($pad), $pad); $res = mcrypt_encrypt(MCRYPT_R
public function encryptString($str) {
$block = mcrypt_get_block_size('rijndael_128', 'ecb');
$pad = $block - (strlen($str) % $block);
$str .= str_repeat(chr($pad), $pad);
$res = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key, $str, MCRYPT_MODE_ECB);
return $res;
}
在Java中,我还使用:
public byte[] encryptBytes(byte[] source) {
try {
byte[] raw = key.getBytes(Charset.forName("UTF-8"));
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(source);
return encrypted;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
我的C#代码:
键-32个字符的字符串
我无法正确解密C#中的加密数据。您的C#正在使用字符串而不是字节数组。这与您的Java代码不同。然而
return Encoding.UTF8.GetString(resultArray);
当密文包含对UTF-8无效编码的字节时,将丢失数据
此外,我建议您在C#code中使用加密流
;NET加密库似乎以流式方法为中心(无论好坏)。您的C#code?C#加密方法在哪里:使用此方法时,Relult数据不相等。
return Encoding.UTF8.GetString(resultArray);