我正在做一个
System.Text.Encoding.UTF8.GetBytes(s)
在使用.NET 2.0框架的两个不同程序(一个控制台,一个Web)中的字符串上,编码与两者不同。对于字符串“everything”,我得到相同的结果,但对于字符串“OnI3UwUc”,我得到两个不同的结果。
对于“OnI3UwUc”,6f6e693375777563 对于另一个程序中的“OnI3UwUc”,我得到了4f63493355775563。
在
中我试着把它写成与我的一些经典ASP代码相同的操作:
Dim crypt : Set crypt = CreateObject("Chilkat.Crypt2")
crypt.UnlockComponent("TXTECHCrypt_6X6EnMdFNRCe")
crypt.HashAlgorithm = "sha1"
crypt.CryptAlgorithm = "aes"
crypt.CipherMode = "ecb"
crypt.EncodingMode = "hex"
crypt.SetEncodedKey "100202330405560608790A8B0C9D0EAF","hex"
答案 0 :(得分:6)
您提到您从其中一个程序获得的UTF-8是6f6e693375777563
。这会解码回"oni3uwuc"
。换句话说,你的另一个程序在UTF-8编码之前小写所有字母。
答案 1 :(得分:0)
这极不可能。对两个字符串使用File.WriteAllText("C:/file1.txt", s)
,并仔细比较它们。他们会不同。
在极不可能的情况下,它们实际上是相同的,请尝试从这两个不影响此输出的程序中删除所有,然后将其发布在connect.microsoft.com上,并链接这里。但请注意,超过100行的程序几乎肯定可以进一步减少。