.net实现加密算法小结

本文主要演示.net中常用三种加密方式:其中SHA1、MD5为不可逆加密,最后一种为自定义加密密钥,可进行解密。如图:

11

 

在.net下使用上述方法需要先引用:

using System.Security.Cryptography;

using System.Text;

using System.IO;


加密SHA1函数封装为:

public static string SHA1_Encrypt(string str)
       {
           return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1");
       }


加密MD5函数封装为:

public static string MD5_Encrypt(string str)
       {
           return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5");
       }


短加密的加密 :

public static string LT_Encrypt(string strSource)
        {
            //把字符串放到byte数组中  
            byte[] bytIn = System.Text.Encoding.Default.GetBytes(strSource);
            //建立加密对象的密钥和偏移量,可自行修改          
            byte[] iv = { 102, 13, 93, 156, 78, 4, 218, 32 };//定义偏移量  
            byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥  
            //实例DES加密类  
            DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
            mobjCryptoService.Key = iv;
            mobjCryptoService.IV = key;
            ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
            //实例MemoryStream流加密密文件  
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
            cs.Write(bytIn, 0, bytIn.Length);
            cs.FlushFinalBlock();
            return System.Convert.ToBase64String(ms.ToArray());
        }


短加密的解密:

public static string LT_Decrypt(string Source)
       {
           try
           {
               //将解密字符串转换成字节数组  
               byte[] bytIn = System.Convert.FromBase64String(Source);
               //给出解密的密钥和偏移量,密钥和偏移量必须与加密时的密钥和偏移量相同  
               byte[] iv = { 102, 13, 93, 156, 78, 4, 218, 32 };//定义偏移量  
               byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥  
               DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
               mobjCryptoService.Key = iv;
               mobjCryptoService.IV = key;
               //实例流进行解密  
               System.IO.MemoryStream ms = new System.IO.MemoryStream(bytIn, 0, bytIn.Length);
               ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
               CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
               StreamReader strd = new StreamReader(cs, Encoding.Default);
               return strd.ReadToEnd();
           }
           catch
           {
               return "error";
           }
       }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_千鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值