以下代码有什么问题:DateTime timestamp = DateTime.Now; string timestampStr = timestamp.ToString("yyyyMMddHHmmss"); string shortString = ""; byte[] hash = null; using (SHA1 sha1 = SHA1.Create()) { hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(timestampStr)); string base64 = Convert.ToBase64String(hash); shortString = base64.Replace("+", "P").Replace("/", "S").Replace("=", "E").Substring(0, 7); } string base64_2 = shortString.Replace("P", "+").Replace("S", "/").Replace("E", "=").PadRight(28, '='); hash = Convert.FromBase64String(base64_2); string hashString = Encoding.UTF8.GetString(hash); timestampStr = hashString.Substring(0, 14); timestamp = DateTime.ParseExact(timestampStr, "yyyyMMddHHmmss", null);
时间: 2023-05-17 11:03:15 浏览: 168
DateTime 使用代码
这段代码的问题在于使用了 SHA1 哈希算法,而 SHA1 已经被证明不再安全,容易被攻击。建议使用更安全的哈希算法,如 SHA256 或 SHA512。另外,使用字符串替换来处理 Base64 编码的字符串也不是一个好的做法,建议使用 Base64Url 编码来代替。
阅读全文