可能是重复问题:
如何反向解析MD5哈希值
给定C#中的这个方法:
public string CalculateFileHash(string filePaths) {
var csp = new MD5CryptoServiceProvider();
var pathBytes = csp.ComputeHash(Encoding.UTF8.GetBytes(filePaths));
return BitConverter.ToUInt64(pathBytes, 0).ToString();
}
如何使用“DecodeFileHash”方法来反转此过程?
var fileQuery = "fileone.css,filetwo.css,file3.css";
var hashedQuery = CalculateFileHash(fileQuery); // e.g. "23948759234"
var decodedQuery = DecodeFileHash(hashedQuery); // "fileone.css,filetwo.css,file3.css"
最终decodedQuery == fileQuery,这是否可能?如果不可能,是否有任何方法可以生成一个易于解码的哈希值?
编辑:为了明确起见,我只想压缩变量“fileQuery”,并解压缩fileQuery以确定它最初是什么。有没有解决这个问题的建议,因为哈希/解码已经不可行了?
再次编辑:仅进行base64编码/解码似乎是最佳解决方案。
public string EncodeTo64(string toEncode) {
var toEncodeAsBytes = Encoding.ASCII.GetBytes(toEncode);
var returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
return returnValue;
}
public string DecodeFrom64(string encodedData) {
var encodedDataAsBytes = System.Convert.FromBase64String(encodedData);
var returnValue = Encoding.ASCII.GetString(encodedDataAsBytes);
return returnValue;
}