c# Aes加解密和SHA256加解密方法

这篇具有很好参考价值的文章主要介绍了c# Aes加解密和SHA256加解密方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. Aes

    public static  class AesUtil
    {
        #region AES加密
        /// <summary>
        /// aes加码
        /// </summary>
        /// <param name="toEncrypt"></param>
        /// <returns></returns>
        /// 
        public static string Encrypt(string toEncrypt)
        {
            try
            {

                byte[] keyArray = UTF8Encoding.UTF8.GetBytes("testtesttesttest");
                byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);


                RijndaelManaged rDel = new RijndaelManaged();//using System.Security.Cryptography;     
                rDel.Key = keyArray;
                rDel.Mode = CipherMode.ECB;//using System.Security.Cryptography;     
                rDel.Padding = PaddingMode.PKCS7;//using System.Security.Cryptography;     
                ICryptoTransform cTransform = rDel.CreateEncryptor();//using System.Security.Cryptography;     
                byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

                StringBuilder builder = new StringBuilder(resultArray.Length * 3);
                foreach (byte data in resultArray)
                    builder.Append(Convert.ToString(data, 16).PadLeft(2, '0').PadRight(3, ' '));
                return builder.ToString().ToUpper().Replace(" ", "");

            }
            catch (Exception ex)
            {
                Log.Error($"AesEncrypt ex:{ex.Message}");
                return "";
            }
            //return Convert.ToBase64String(resultArray, 0, resultArray.Length);
        }


        #endregion AES加密

        #region AES解密
        /// <summary>
        /// aes解码
        /// </summary>
        /// <param name="toDecrypt"></param>
        /// <returns></returns>
        public static string Decrypt(string toDecrypt)
        {
            try
            {

                byte[] keyArray = UTF8Encoding.UTF8.GetBytes("testtesttesttest");

                toDecrypt = toDecrypt.Replace(" ", "");

                byte[] comBuffer = new byte[toDecrypt.Length / 2];

                for (int i = 0; i < toDecrypt.Length; i += 2)
                    comBuffer[i / 2] = (byte)Convert.ToByte(toDecrypt.Substring(i, 2), 16);


                RijndaelManaged rDel = new RijndaelManaged();
                rDel.Key = keyArray;
                rDel.Mode = CipherMode.ECB;
                rDel.Padding = PaddingMode.PKCS7;

                ICryptoTransform cTransform = rDel.CreateDecryptor();
                byte[] resultArray = cTransform.TransformFinalBlock(comBuffer, 0, comBuffer.Length);


                return UTF8Encoding.UTF8.GetString(resultArray);
            }
            catch (Exception ex)
            {
                Log.Error($"AesDecrypt ex:{ex.Message}");
                return "";
            }
        }
        #endregion AES解密

    }

  1. SHA256

    public static class SHA256EncryptUtil
    {
        /// SHA256加密,并十六进制编码
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static string SHA256EncryptString(string data)
        {
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data);
            byte[] hash = SHA256Managed.Create().ComputeHash(bytes);

            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < hash.Length; i++)
            {
                builder.Append(hash[i].ToString("x2"));
            }
            return builder.ToString();
        }


        /// <summary>
        /// HMACSHA256加密
        /// </summary>
        /// <param name="message"></param>
        /// <param name="secret"></param>
        /// <returns></returns>
        public static string HmacSHA256(string message, string secret)
        {
            secret = secret ?? "";
            var encoding = new System.Text.UTF8Encoding();
            byte[] keyByte = encoding.GetBytes(secret);
            byte[] messageBytes = encoding.GetBytes(message);
            using (var hmacsha256 = new HMACSHA256(keyByte))
            {
                byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < hashmessage.Length; i++)
                {
                    builder.Append(hashmessage[i].ToString("x2"));
                }
                return builder.ToString();
            }
        }

        /// <summary>
        /// 二进制
        /// </summary>
        /// <param name="message"></param>
        /// <param name="secret"></param>
        /// <returns></returns>
        public static byte[] HmacSHA256Bytes(string message, string secret)
        {
            secret = secret ?? "";
            var encoding = new System.Text.UTF8Encoding();
            byte[] keyByte = encoding.GetBytes(secret);
            byte[] messageBytes = encoding.GetBytes(message);
            using (var hmacsha256 = new HMACSHA256(keyByte))
            {
                byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
                //StringBuilder builder = new StringBuilder();
                //for (int i = 0; i < hashmessage.Length; i++)
                //{
                //    builder.Append(hashmessage[i].ToString("x2"));
                //}
                return hashmessage;
            }
        }
    }


测试密钥文章来源地址https://www.toymoban.com/news/detail-767760.html


公钥
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp3nEMet00r0M72wQW5wpg1Gl06R2iH/p6L9HO5qPw8y2uu5ZXYyP9rcuzMzQ0Gr5NfdJMEf6FYKqe+UnMvURctTxCH+Nu0yKSjKJwWTthvyDZ3uKVZsK5ix56zsJNJt/zgFhsuioLXrSQuqea/G867VYqYp7Q2RzT0KBmmIVVG8Bh5NBEs8fhnHFpMH7x3WVWipUT+ulYCebVX+ncXeRPpJXNz/NpLp2ULoyGgKAzYaYoPNt4hf/hLekBmj5BkvYJZscRCxNybYwjM801OLzlUHKLj5X/8wvSXGChKTNXEphH5xB7idKeUhjeptsJnrrchiP/nRqyCyTTLHScHlG7QIDAQAB
-----END PUBLIC KEY-----

私钥
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnecQx63TSvQzvbBBbnCmDUaXTpHaIf+nov0c7mo/DzLa67lldjI/2ty7MzNDQavk190kwR/oVgqp75Scy9RFy1PEIf427TIpKMonBZO2G/INne4pVmwrmLHnrOwk0m3/OAWGy6KgtetJC6p5r8bzrtVipintDZHNPQoGaYhVUbwGHk0ESzx+GccWkwfvHdZVaKlRP66VgJ5tVf6dxd5E+klc3P82kunZQujIaAoDNhpig823iF/+Et6QGaPkGS9glmxxELE3JtjCMzzTU4vOVQcouPlf/zC9JcYKEpM1cSmEfnEHuJ0p5SGN6m2wmeutyGI/+dGrILJNMsdJweUbtAgMBAAECggEAYbReS6lMHG4Cj+OBn5B5f40wq0p1hKjrc8ez7Qf8+4QAzwmixTrt+kdgXEbZQ95EycEcx7gWJFp4z5MezVG//jhQ7l5L94tt2l+lklgpYukKWGLwj4TGVQZ5kkx80F4vr6WKs++bvfy7kiKCjgMX7oN72F1cEDMYOpNYPRMf0oOGL6wdlbUKSS8mpMVQ8N9PUGv9CnRM8MidptF716ZvIzyrRr7S4CYf71Re4VMeA5GIEYElhkMlI+m9DO8S1rm++TcclJwfPRKe4MLlHZigSzQ/RBy+xD+FvtnpDcNd2ltyv9yHOPS/skxbB81gJtqFksYQspAC3niqNs1t9dzcWQKBgQDeY+35LNz6R028kwB/1fcARbE1QZ7/NFvvcPccr1YbnsFWEPkYARs6L7RzD4dXmhpOlqtVrc1aIRyjYn9Xao6gMOCDluv2D0yghm3CxJ6jzNor9Kuv1WQPd3Uef4rAreaDHzBuJUGNelSZ576ugs/jf+N35YF2jDOgcXbhta1u3wKBgQDAyT1NkFu/rDdOegG5SYpCHBjvjeHKjDqPrmKSz+9pRDHp0AJgbJ4Yl6PNK7RpsDt0MFTSnTGmDTMNqlpcMInaE7qf4hMzrzRwoGvgzj/10l08mbjGnFLtEKVO53bTlTgjL3FPeDO83k3ceyTJLlfUGZtW8596GmPwn6RFRfBfswKBgQDTkMeU9EwpQWo/yq1/8AKyXJqwKoRjDuGjUZmUzW0ii44sHauLXYoUecu2ZoCAI1eBii7nLJgedT+0Y4D3naSf2r/MD+jcxkNEt351+u1csQahKHuopF4zpJZj9DwA/6868JH3RzQsrsMLQ3+Qr1usdz7kEg9uwwReT3MkWNzsiwKBgQC6DXysLnVdNcbqZbTkLKTRyGwIRNVztIGPyKw5I5PZ84Z4L9cbV7f749yhVVx34yx9pWc3G52es35h4dXywqVHYWLqijQd3SiuySNTgbkYdDynD3PTuWoOf9IJpDh5Wbkju9WO7GKCE8jwz6dgwOjiORRBhjySioWI44iVkjm5IQKBgFvbsJmh982qp9dsJuZTzTTcLjw/7wiB1a93Tw/HzPu9s4TjcVVdnJ0SFKHt/ZxToYbuPPHjqiWXi14+lYvp6OLVIsRXufUz965eiCEC3sF6risVhhMacy8KacxVwdIKcDaeSUn3/xEXQhEbghmrhj87RF4K1aA3D2GfK6aBG6V9
-----END PRIVATE KEY-----

到了这里,关于c# Aes加解密和SHA256加解密方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 保障安全的散列算法 - SHA256

    SHA-256是由美国国家安全局(NSA)开发的SHA-2密码哈希函数之一,用于数字签名和区块链。在计算机科学和信息安全领域,SHA-256 (安全哈希算法 256位) 是广受欢迎且常被使用的密码学散列函数。SHA-256 产生一个唯一、定长的256位 (32字节)散列值,不仅可以用于密码学中信息的安全存

    2024年04月12日
    浏览(50)
  • 攻破SHA-256!?你的比特币还安全吗?

    原创 | 刘教链 挽弓当挽强,用箭当用长。射人先射马,擒贼先擒王。 就在BTC(比特币)还在7万刀附近游走之际,密码学界隔空传来一声霹雳:对SHA-2的碰撞攻击方法取得新进展! 运用这一最新的碰撞攻击方法,研究者在全球首次成功攻破了31步长的SHA-256哈希、28步长的SHA-

    2024年04月17日
    浏览(51)
  • Android studio获取证书的MD5/SHA1/SHA-256以及公钥的方法

    Android studio 获取MD5 SHA1 SHA-256 值命令:./gradlew signingReport Android studio 获取公钥:keytool -export -alias key0 -keystore key.keystore -file zhengshu.cer 一、获取MD5 SHA1 SHA-256 值 在Android项目中执行命令:./gradlew signingReport 然后以上操作执行完成之后,搜索你的证书名称,找到以下数据: 二、获

    2024年02月03日
    浏览(62)
  • Android 获取应用sha1和sha256

    在 Android 应用开发中,SHA-1(Secure Hash Algorithm 1)值是一种哈希算法,常用于生成应用的数字签名。这个数字签名用于验证应用的身份,并确保应用在发布到设备上时没有被篡改。 以下是生成 Android 应用的 SHA-1 值的步骤: 生成密钥库(KeyStore): 首先,你需要创建一个密钥库

    2024年02月07日
    浏览(41)
  • [虚幻引擎插件说明] DTSha – 蓝图SHA加密节点, SHA1, SHA224, SHA256, SHA384, SHA512加密

    本插件可以在虚幻引擎中使用蓝图对字符串或者文件进行SHA加密。 目录 1. 节点说明 SHA-1 Encrypt SHA-224 Encrypt SHA-256 Encrypt SHA-384 Encrypt SHA-512 Encrypt SHA-1 Of File SHA-224 Of File SHA-256 Of File SHA-384 Of File SHA-512 Of File 2. 案例演示 ​编辑 3. 插件下载 SHA-1 Encrypt 字符串进行SHA-1加密,字符串

    2024年02月16日
    浏览(57)
  • SHA256加密

    将转换成16进制再加密 将byte转为16进制 以上是加密算法,解密,其实我们可以将密文存到数据库中,当需要判断是否一致的时候,就那加密后的与数据库中存的值做对比,看是否一致

    2024年02月12日
    浏览(53)
  • ocr+sha256

       

    2024年04月17日
    浏览(45)
  • SHA-256算法及示例

    SHA-256(安全哈希算法,FIPS 182-2)是密码学哈希函数,其摘要长度为256位。SHA-256为keyless哈希函数,即为MDC(Manipulation Detection Code)。【MAC消息认证码有key,不是keyless的。】 SHA-256哈希函数可定义为: 其中: 输入:消息 M M M 为任意长度的字节数组。 输出:在 [ 0 , 2 256 ) [0,2

    2024年02月10日
    浏览(46)
  • Solidity Keccak256与SHA3-256

    SHA3由Keccak标准化而来,在很多场合下Keccak和SHA3是同义词,但在2015年8月SHA3最终完成标准化时,NIST调整了填充算法: SHA3-256(M) = KECCAK [512] (M || 01, 256) 。所以标准的NIST-SHA3就和Keccak计算的结果不一样。 如对空字符串进行Keccak256 和 SHA3-256结果各不相同: 以太坊在开发的时候SH

    2024年02月11日
    浏览(70)
  • 如何获取SHA256证书指纹

    打开dos窗口。cmd  找到keytool命令,jdk的bin目录下。如果已经配置了环境变量则可以直接用  输入keytool查看是否识别命令 输入命令,查看SHA256证书指纹(由于我的文件直接在d盘根目录。我先d: 切到d盘的。) keytool -list -v -keystore lyfjpushdemo.jks 输入密钥则会生成。 (在其它盘可

    2024年02月16日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包