将String转换为Int并返回String

时间:2014-03-10 16:42:13

标签: c#

我正在尝试将电子邮件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"

我错过了什么?

1 个答案:

答案 0 :(得分:2)

将前四个字节(Int32是32位类型)转换为数字,再次加密,解密和解码。 UTF-8中的四个字节非常适合john。您需要一个整数数组,在这种情况下,您也可以使用byte[]