C#使用CakePHP的Security :: rijndael解密Rijndael加密字符串

时间:2016-02-18 05:00:08

标签: c# php cakephp encryption rijndael

我试图解密使用CakePHP的Security :: rijndael()函数加密的字符串。这是我的代码:

$enc = bin2hex( Security::rijndael( $field, Configure::read('Security.key'), 'encrypt' ) );

请注意,加密后,我使用bin2hex()函数将其转换为可存储在数据库中的十六进制字符串。

在CakePHP中,我可以使用以下方法轻松解密:

$dec = Security::rijndael( hex2bin( $field ), Configure::read( 'Security.key' ), 'decrypt' );

我试图通过首先运行hex2bin来使用C#实现相同类型的解密。我尝试使用我在网上找到的hex2bin()样本:

private string hex2bin( string hexvalue ) {
    string binaryval = "";
    binaryval = Convert.ToString( Convert.ToInt64( hexvalue, 16 ), 2 );
    return binaryval;
}

...但这会不断返回错误:对于UInt64来说价值太大或太小而且我无法超越这一点。

我正在寻找有关如何在C#中扭转过程的想法。

谢谢。

1 个答案:

答案 0 :(得分:0)

您必须将字符串切片为一系列一次解码的字节:

0

结果应该是一个字节数组,而不是字符串....