我正在使用图像文件的MD5哈希,我想将哈希用作文件名.
如何将哈希值转换为有效文件名的字符串?
编辑:toString()只提供"System.Byte []"
Luk*_*keH 20
这个怎么样:
string filename = BitConverter.ToString(yourMD5ByteArray);
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢没有连字符的较短文件名,那么您可以使用:
string filename =
BitConverter.ToString(yourMD5ByteArray).Replace("-", string.Empty);
Run Code Online (Sandbox Code Playgroud)
Jon*_*upp 11
正如一位评论者指出的那样 - 普通的base 64编码可以包含一个'/'字符,这显然是文件名的问题.但是,还有其他可用的字符,例如下划线 - 只需用下划线替换所有'/'.
string filename = Convert.ToBase64String(md5HashBytes).Replace("/","_");
Run Code Online (Sandbox Code Playgroud)