等于C#和PHP中的加密/解密

等于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

有人能帮我解密用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_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);