我正在尝试将电子邮件String
转换为Int32
,然后使用HashidsNet对其进行哈希处理。
最后,我还原了再次收到电子邮件的过程......我尝试了以下内容:
HashidsNet.Hashids hash = new HashidsNet.Hashids();
String email = "john.smith@xyz.com";
Byte[] bytes = Encoding.UTF8.GetBytes(email);
Int32 number = BitConverter.ToInt32(bytes, 0);
String hashed = hash.Encrypt(number);
Int32[] numbers = hash.Decrypt(hashed);
Byte[] newBytes = BitConverter.GetBytes(numbers[0]);
String newEmail = Encoding.UTF8.GetString(newBytes);
不知何故newEmail
只变为"john"
。
我错过了什么?
答案 0 :(得分:2)
将前四个字节(Int32
是32位类型)转换为数字,再次加密,解密和解码。 UTF-8中的四个字节非常适合john
。您需要一个整数数组,在这种情况下,您也可以使用byte[]
。