C#實現Java的DigestUtils.sha256Hex


代碼地址:DotNetCore_Practice/JavaToC#/DigestUtils at master · PuzzledAlien/DotNetCore_Practice

public class Hex
{
    /// <summary>
    /// 字節數組轉換為Hex字符串
    /// </summary>
    /// <param name="data"></param>
    /// <param name="toLowerCase"></param>
    /// <returns></returns>
    public static string ByteArrayToHexString(byte[] data, bool toLowerCase = true)
    {
        var hex = BitConverter.ToString(data).Replace("-", string.Empty);
        return toLowerCase ? hex.ToLower() : hex.ToUpper();
    }
}
public class DigestUtils
{
    /// <summary>
    /// SHA256 轉換為 Hex字符串
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    public static string Sha256Hex(string data)
    {
        var bytes = Encoding.UTF8.GetBytes(data);
        using (var sha256 = SHA256.Create())
        {
            var hash = sha256.ComputeHash(bytes);
            return Hex.ByteArrayToHexString(hash);
        }
    }

    /// <summary>
    /// SHA256 轉換為 Hex字符串
    /// </summary>
    /// <param name="data"></param>
    /// <param name="encoding"></param>
    /// <returns></returns>
    public static string Sha256Hex(string data, Encoding encoding)
    {
        var bytes = encoding.GetBytes(data);
        using (var sha256 = SHA256.Create())
        {
            var hash = sha256.ComputeHash(bytes);
            return Hex.ByteArrayToHexString();
        }
    }

    /// <summary>
    /// SHA256 轉換為 Hex字符串
    /// </summary>
    /// <param name="bytes"></param>
    /// <returns></returns>
    public static string Sha256Hex(byte[] bytes)
    {
        using (var sha256 = SHA256.Create())
        {
            var hash = sha256.ComputeHash(bytes);
            return Hex.ByteArrayToHexString();
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM