如何将MD5哈希转换为字符串并将其用作文件名

Mal*_*olm 5 c# md5

我正在使用图像文件的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

System.Convert.ToBase64String

正如一位评论者指出的那样 - 普通的base 64编码可以包含一个'/'字符,这显然是文件名的问题.但是,还有其他可用的字符,例如下划线 - 只需用下划线替换所有'/'.

string filename = Convert.ToBase64String(md5HashBytes).Replace("/","_");
Run Code Online (Sandbox Code Playgroud)