Dan*_*lba 3 .net c# string base64 md5
嗨我有一些使用以下代码生成的字符串:
private static string CalcHashCode(byte[] data)
{
MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
Byte[] hash = md5Provider.ComputeHash(data);
return Convert.ToBase64String(hash);
}
Run Code Online (Sandbox Code Playgroud)
如何从编码的base64字符串中获取一个唯一的long,我的意思是,相反的操作,然后将其转换为long?
private long CalcLongFromHashCode(string base64Hashcode)
{
//TODO
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
你不能将base-64字符串转换为a long(如果它不适合它可能会被截断,因为long只使用8个字节)...
可以将它转换为字节数组(这是' 相反的 '操作):
byte[] hash = new byte[] { 65, 66, 67, 68, 69 };
string string64 = Convert.ToBase64String(hash);
byte[] array = Convert.FromBase64String(string64);
Run Code Online (Sandbox Code Playgroud)
如果您的数组包含至少8个字节,那么您可以得到您的长值:
long longValue = BitConverter.ToInt64(array, 0);
Run Code Online (Sandbox Code Playgroud)
首先,将字符串转换为byte [],
var array = Convert.FromBase64String(base64Hashcode);
Run Code Online (Sandbox Code Playgroud)
然后将字节数组转换为long
var longValue = BitConverter.ToInt64(array, 0);
Run Code Online (Sandbox Code Playgroud)
如前所述,你会被截断.
相反的方向:
var bits = BitConverter.GetBytes(@long);
var base64 = Convert.ToBase64String(bits);
Run Code Online (Sandbox Code Playgroud)
例子:
218433070285205504 : "ADCMWbgHCAM="
long.MaxValue : "/////////38="
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6902 次 |
| 最近记录: |