C#实现基于Base64的加密解密类实例
程序员文章站
2023-12-04 17:42:28
本文实例讲述了c#实现基于base64的加密解密类。分享给大家供大家参考。具体如下:
这个c#类是一个基于base64的加密和解密类,用户可以可以使用默认的秘钥进行加密、...
本文实例讲述了c#实现基于base64的加密解密类。分享给大家供大家参考。具体如下:
这个c#类是一个基于base64的加密和解密类,用户可以可以使用默认的秘钥进行加密、解密,也可以自己设定秘钥进行加密和解密,非常实用
using system; using system.security.cryptography; using system.text; namespace dotnet.utilities { /// <summary> /// encrypt 的摘要说明。 /// </summary> public class dencrypt { /// <summary> /// 构造方法 /// </summary> public dencrypt() { } #region 使用 缺省密钥字符串 加密/解密string /// <summary> /// 使用缺省密钥字符串加密string /// </summary> /// <param name="original">明文</param> /// <returns>密文</returns> public static string encrypt(string original) { return encrypt(original,"sharejs.com"); } /// <summary> /// 使用缺省密钥字符串解密string /// </summary> /// <param name="original">密文</param> /// <returns>明文</returns> public static string decrypt(string original) { return decrypt(original,"sharejs.com",system.text.encoding.default); } #endregion #region 使用 给定密钥字符串 加密/解密string /// <summary> /// 使用给定密钥字符串加密string /// </summary> /// <param name="original">原始文字</param> /// <param name="key">密钥</param> /// <param name="encoding">字符编码方案</param> /// <returns>密文</returns> public static string encrypt(string original, string key) { byte[] buff = system.text.encoding.default.getbytes(original); byte[] kb = system.text.encoding.default.getbytes(key); return convert.tobase64string(encrypt(buff,kb)); } /// <summary> /// 使用给定密钥字符串解密string /// </summary> /// <param name="original">密文</param> /// <param name="key">密钥</param> /// <returns>明文</returns> public static string decrypt(string original, string key) { return decrypt(original,key,system.text.encoding.default); } /// <summary> /// 使用给定密钥字符串解密string,返回指定编码方式明文 /// </summary> /// <param name="encrypted">密文</param> /// <param name="key">密钥</param> /// <param name="encoding">字符编码方案</param> /// <returns>明文</returns> public static string decrypt(string encrypted, string key,encoding encoding) { byte[] buff = convert.frombase64string(encrypted); byte[] kb = system.text.encoding.default.getbytes(key); return encoding.getstring(decrypt(buff,kb)); } #endregion #region 使用 缺省密钥字符串 加密/解密/byte[] /// <summary> /// 使用缺省密钥字符串解密byte[] /// </summary> /// <param name="encrypted">密文</param> /// <param name="key">密钥</param> /// <returns>明文</returns> public static byte[] decrypt(byte[] encrypted) { byte[] key = system.text.encoding.default.getbytes("sharejs.com"); return decrypt(encrypted,key); } /// <summary> /// 使用缺省密钥字符串加密 /// </summary> /// <param name="original">原始数据</param> /// <param name="key">密钥</param> /// <returns>密文</returns> public static byte[] encrypt(byte[] original) { byte[] key = system.text.encoding.default.getbytes("sharejs.com"); return encrypt(original,key); } #endregion #region 使用 给定密钥 加密/解密/byte[] /// <summary> /// 生成md5摘要 /// </summary> /// <param name="original">数据源</param> /// <returns>摘要</returns> public static byte[] makemd5(byte[] original) { md5cryptoserviceprovider hashmd5 = new md5cryptoserviceprovider(); byte[] keyhash = hashmd5.computehash(original); hashmd5 = null; return keyhash; } /// <summary> /// 使用给定密钥加密 /// </summary> /// <param name="original">明文</param> /// <param name="key">密钥</param> /// <returns>密文</returns> public static byte[] encrypt(byte[] original, byte[] key) { tripledescryptoserviceprovider des = new tripledescryptoserviceprovider(); des.key = makemd5(key); des.mode = ciphermode.ecb; return des.createencryptor().transformfinalblock(original, 0, original.length); } /// <summary> /// 使用给定密钥解密数据 /// </summary> /// <param name="encrypted">密文</param> /// <param name="key">密钥</param> /// <returns>明文</returns> public static byte[] decrypt(byte[] encrypted, byte[] key) { tripledescryptoserviceprovider des = new tripledescryptoserviceprovider(); des.key = makemd5(key); des.mode = ciphermode.ecb; return des.createdecryptor().transformfinalblock(encrypted, 0, encrypted.length); } #endregion } }
希望本文所述对大家的c#程序设计有所帮助。
上一篇: android随机生成圆形云标签效果