C# 文件数据加密以及解密
2015-02-05 17:34
281 查看
之前做的一个项目上线后听说被破解了,很伤心!赶紧把以前学过的文件加密解密的半吊子赶紧拉出来研究研究。
下面在来一段加密解密整理后的代码,懒一点的可以拿出去直接使用。
这是一个静态类,关于静态类有不清楚的地方可以点击 C# 静态类与非静态类、静态成员的区别,这里就不再多说了。
我来测试一下,我谢了个测试脚本。
测试结果如下图所示,
结果果然在意料之中,嘿嘿。
其实加密解密还有很多种方式,这只是其中的一种。大家如果有加密解密这一块的博客或者别的,可以留言给我,大家一起交流,一起进步。
文件数据加密
public static string AddLock(string info,string lockKey) { byte[] key = UTF8Encoding.UTF8.GetBytes(lockKey); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = key;//获取或设置对称算法密匙 rDel.Mode = CipherMode.ECB;//获取或设置对称算法模式 rDel.Padding = PaddingMode.PKCS7;//获取或设置对称算法中使用的填充模式 byte[] EncryptorString = UTF8Encoding.UTF8.GetBytes(info); ICryptoTransform cTransform = rDel.CreateEncryptor();//用当前设置好的属性创建对称加密器 //加密 byte[] back = cTransform.TransformFinalBlock(EncryptorString, 0, EncryptorString.Length); //转换为string类型方便存储 string end = System.Convert.ToBase64String(back, 0, back.Length); return end; }
文件数据解密
public static string RemoveLock(string info, string lockKey) { byte[] key = UTF8Encoding.UTF8.GetBytes(lockKey); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = key;//获取或设置对称算法密匙 rDel.Mode = CipherMode.ECB;//获取或设置对称算法模式 rDel.Padding = PaddingMode.PKCS7;//获取或设置对称算法中使用的填充模式 //创建解密器------注意解密器的属性(密匙,算法模式,填充模式等)需与加密时的一致-- ICryptoTransform cTransform = rDel.CreateDecryptor(); byte[] EncryptorString = System.Convert.FromBase64String(info); //解密 byte[] back = cTransform.TransformFinalBlock(EncryptorString, 0, EncryptorString.Length); //转换为string类型方便使用 string end = UTF8Encoding.UTF8.GetString(back); return end; }
下面在来一段加密解密整理后的代码,懒一点的可以拿出去直接使用。
using UnityEngine; using System.Collections; using System.Security.Cryptography; using System.Text; public static class FileToLock { private static string lockKey = "12340578906543367877723456789012"; private static RijndaelManaged rDel; static FileToLock() { byte[] key = UTF8Encoding.UTF8.GetBytes(lockKey); rDel = new RijndaelManaged(); rDel.Key = key;//获取或设置对称算法密匙 rDel.Mode = CipherMode.ECB;//获取或设置对称算法模式 rDel.Padding = PaddingMode.PKCS7;//获取或设置对称算法中使用的填充模式 } public static string AddLock(string info) { if (string.IsNullOrEmpty(info)) { return info; } byte[] EncryptorString = UTF8Encoding.UTF8.GetBytes(info); ICryptoTransform cTransform = rDel.CreateEncryptor();//用当前设置好的属性创建对称加密器 //加密 byte[] back = cTransform.TransformFinalBlock(EncryptorString, 0, EncryptorString.Length); //转换为string类型方便存储 string end = System.Convert.ToBase64String(back, 0, back.Length); return end; } public static string RemoveLock(string info) { if (string.IsNullOrEmpty(info)) { return info; } //创建解密器------注意解密器的属性(密匙,算法模式,填充模式等)需与加密时的一致-- ICryptoTransform cTransform = rDel.CreateDecryptor(); byte[] EncryptorString = System.Convert.FromBase64String(info); //解密 byte[] back = cTransform.TransformFinalBlock(EncryptorString, 0, EncryptorString.Length); //转换为string类型方便使用 string end = UTF8Encoding.UTF8.GetString(back); return end; } }
这是一个静态类,关于静态类有不清楚的地方可以点击 C# 静态类与非静态类、静态成员的区别,这里就不再多说了。
我来测试一下,我谢了个测试脚本。
using UnityEngine; using System.Collections; public class TestGameData : MonoBehaviour { // Use this for initialization void Start() { string str = "Hello,World!我是要加密的字符串"; Debug.Log("加密之前的字符串 -->" + str); str = FileToLock.AddLock(str); Debug.Log("加密之后的字符串 -->" + str); Debug.Log("解密之前的字符串 -->" + str); str = FileToLock.RemoveLock(str); Debug.Log("解密之后的字符串 -->" + str); } // Update is called once per frame void Update () { } }
测试结果如下图所示,
结果果然在意料之中,嘿嘿。
其实加密解密还有很多种方式,这只是其中的一种。大家如果有加密解密这一块的博客或者别的,可以留言给我,大家一起交流,一起进步。
相关文章推荐
- 使用DESCryptoServiceProvider类对数据或者文件进行加密解密
- .NET下对二进制文件进行加密解密(C#)
- C# DES 加密/解密,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- 『原创』c#实现文件加密、解密及文件拖拽至程序图标直接打开
- c# web.config 配置文件的加密与解密,aspnet_regiis.exe
- C#中利用DPAPI加密解密数据
- 加密解密时遇到的"不正确的数据"以及"要解密的数据长度无效"问题解决方案
- c# winform 文件内容的加密与解密
- (转)使用Vernam(维尔南/弗纳姆)算法实现文件加密解密[C#]
- .NET下对二进制文件进行加密解密(C#)
- .NET下对二进制文件进行加密解密(C#)
- [转].NET下对二进制文件进行加密解密(C#)
- [转]C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- NET下对二进制文件进行加密解密(C#)
- c#加密解密文件
- c# 通过修改图片对象的文件的字节 变相"加密""解密"图片在磁盘的存储
- c# 通过修改图片对象的文件的字节 变相"加密""解密"图片在磁盘的存储
- [读书笔记]C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- .NET下对二进制文件进行加密解密(C#)
- 黄聪:C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串