Unity-SHA256加密

之前在接入语音识别中,发现有道用的SHA256加密算法,讯飞用的HmacSHA256加密算法,都算是对接口的一种访问加密保护,本章来介绍下两种加密算法的写法。

1、SHA256加密

    /// <summary>
    /// 加密-SHA256
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static string SHA256(string str)
    {
        byte[] SHA256Data = Encoding.UTF8.GetBytes(str);

        SHA256Managed Sha256 = new SHA256Managed();
        byte[] by = Sha256.ComputeHash(SHA256Data);

        return BitConverter.ToString(by).Replace("-", "").ToLower();                                                                   
    }

2、HmacSHA256加密

    /// <summary>
    /// 加密算法-HmacSHA256
    /// </summary>
    /// <param name="message"></param>
    /// <param name="secret"></param>
    /// <returns></returns>
    private string HmacSHA256(string message, string secret)
    {
        secret = secret ?? "";
        var encoding = new System.Text.ASCIIEncoding();
        byte[] keyByte = encoding.GetBytes(secret);
        byte[] messageBytes = encoding.GetBytes(message);
        using (var hmacsha256 = new HMACSHA256(keyByte))
        {
            byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
            return Convert.ToBase64String(hashmessage);
        }
    }

以上这两种加密方式,在接入语音识别WebAPI中很常见,基本都是以鉴权参数形式出现,不过一般商业项目,对与接口加密没有什么要求,各位同学有兴趣可以研究研究,无论是MD5还是SHA256加密方式,都是接口安全性的表现形式之一。

上一篇:固化pb模型(faster rcnn 等一系列都适用)


下一篇:Docker入门第四章