C#字节数组到字符串
我读过一些关于这方面的文章,我认为这里没有考虑到一个变量 我正在浏览其他人的代码,他们已经实现了三重des加密。他们没有把钥匙和iv作为字符串存储在某处。仅作为字节数组 我需要在C#之外进行同样的加密/解密调用,所以我正在尝试找出使用的密钥 我尝试过的事情:C#字节数组到字符串,c#,.net,encryption,openssl,tripledes,C#,.net,Encryption,Openssl,Tripledes,我读过一些关于这方面的文章,我认为这里没有考虑到一个变量 我正在浏览其他人的代码,他们已经实现了三重des加密。他们没有把钥匙和iv作为字符串存储在某处。仅作为字节数组 我需要在C#之外进行同样的加密/解密调用,所以我正在尝试找出使用的密钥 我尝试过的事情: byte[] key; // this is set byte[] iv; // this is set Convert.ToBase64String(key); Encoding.Default.GetString(key); Enco
byte[] key; // this is set
byte[] iv; // this is set
Convert.ToBase64String(key);
Encoding.Default.GetString(key);
Encoding.ASCII.GetString(key);
Encoding.UTF8.GetString(key);
也许其中一个的结果是正确的,但我需要做另一个转换来编码它
如果有关系,我只是尝试通过ruby或node.js将这些密钥与openssl一起使用
值得一提的是,我还尝试在ruby中创建一个字节数组并对其进行打包,但结果似乎仍然是错误的。您尝试过使用字节数组的简单十六进制表示吗
string keyHex = BitConverter.ToString(key).Replace("-", "");
string ivHex = BitConverter.ToString(iv).Replace("-", "");
(根据其他系统的复杂程度,您可能还需要将字符串小写和/或在它们前面加上
0x
。好的,我还需要在Ruby代码中重现.NET加密例程。几个小时后,我的头撞在墙上,下面是我的想法。忘记Base64吧,对C#部件使用以下代码:
BitConverter.ToString(键)。替换(“-”,“”)
存储结果。现在在Ruby中定义此函数:
用C部分的输出调用它,它将把hexa字符串转换成bin字符串。我的破坏者是在Ruby端进行转换。它对iv和密钥都有效。简单编码不会加密或解密。我这里不加密或解密。只是想弄到一串钥匙
def self.hex_to_bin(s)
s.scan(/../).map { |x| x.hex.chr }.join
end