当前位置:网站首页>Unity3D 数据加密
Unity3D 数据加密
2022-08-04 08:28:00 【幽满谷】
加密主要使用 AEC 加密方式,采用 CBC 的加密模式。 AES(高级加密标准)加密,是下一代的加密算法标准,具有速度快,安全级别高等特点。在.net中,目前 AES 标准的一个实现是 Rijndael 算法。
代码如下:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public class EncryptTools
{
private static string AES_KEY = "abc123456789asfd"; // 可以是16/24/32位
private static string AES_IV = "gsf4jvkyhye57k8O";
/// <summary>
/// AES 加密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
/// </summary>
/// <param name="EncryptString">待加密密文</param>
public static string AESEncrypt(string EncryptString)
{
return Encoding.UTF8.GetString(AESEncrypt(Encoding.UTF8.GetBytes(EncryptString)));
}
/// <summary>
/// AES 加密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
/// </summary>
/// <param name="EncryptString">待加密密文</param>
public static byte[] AESEncrypt(byte[] contentBytes)
{
if (contentBytes.Length == 0) { return contentBytes; }
byte[] resultBytes;
try
{
byte[] keyBytes = Encoding.UTF8.GetBytes(AES_KEY);
byte[] iv = Encoding.UTF8.GetBytes(AES_IV);
RijndaelManaged rm = new RijndaelManaged();
rm.Key = keyBytes;
rm.IV = iv;
rm.Mode = CipherMode.CBC;
rm.Padding = PaddingMode.PKCS7;
ICryptoTransform ict = rm.CreateEncryptor();
resultBytes = ict.TransformFinalBlock(contentBytes, 0, contentBytes.Length);
}
catch (IOException ex) { throw ex; }
catch (CryptographicException ex) { throw ex; }
catch (ArgumentException ex) { throw ex; }
catch (Exception ex) { throw ex; }
return resultBytes;
}
/// <summary>
/// AES 解密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
/// </summary>
/// <param name="DecryptString">待解密密文</param>
public static string AESDecrypt(string DecryptString)
{
return Encoding.UTF8.GetString(AESDecrypt(Convert.FromBase64String(DecryptString)));
}
/// <summary>
/// AES 解密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
/// </summary>
/// <param name="contentBytes">待解密密文</param>
public static byte[] AESDecrypt(byte[] contentBytes)
{
if (contentBytes.Length == 0) { return contentBytes; }
byte[] resultBytes;
try
{
byte[] keyBytes = Encoding.UTF8.GetBytes(AES_KEY);
byte[] iv = Encoding.UTF8.GetBytes(AES_IV);
RijndaelManaged rm = new RijndaelManaged();
rm.Key = keyBytes;
rm.IV = iv;
rm.Mode = CipherMode.CBC;
rm.Padding = PaddingMode.PKCS7;
ICryptoTransform ict = rm.CreateDecryptor();
resultBytes = ict.TransformFinalBlock(contentBytes, 0, contentBytes.Length);
}
catch (IOException ex) { throw ex; }
catch (CryptographicException ex) { throw ex; }
catch (ArgumentException ex) { throw ex; }
catch (Exception ex) { throw ex; }
return resultBytes;
}
}
边栏推荐
- 使用requests post请求爬取申万一级行业指数行情
- 占位,稍后补上
- DWB主题事实及ST数据应用层构建,220803,,
- GIS数据与CAD数据间带属性字段互相转换还原工具,解决ArcGIS等软件进行GIS数据转CAD数据无法保留属性字段问题
- 【虚幻引擎UE】UE5基于Gltf加载插件实现gltf格式骨骼动画在线/本地导入和切换
- 经典递归回溯问题之——解数独(LeetCode 37)
- LeetCode 97. 交错字符串
- 给Unity Behavior Designer(Unity行为树) 的Can See Object 画圆锥辅助图
- 第一次用postgreSQL,想装主从,用的12.7 tar.gz版本。安装好后没在 share目录下找到样例配置recovery.conf.sample,是安装方式不对,还是路径不对?
- sql在字段重复时 对某个字段根据最新时间取数
猜你喜欢
金仓数据库 KDTS 迁移工具使用指南 (4. BS 版使用说明)
MYSQL JDBC图书管理系统
Lightweight Backbone VGNetG Achieves "No Choice, All" Lightweight Backbone Network
[Computer recording screen] How to use bandicam to record the game setting graphic tutorial
C语言strchr()函数以及strstr()函数的实现
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
IntelliJ新建一个类或者包的快捷键是什么?
线程安全问题
【STM32】STM32F103系列名称与封装、内存
解决:Hbuilder工具点击发行打包,一直报尚未完成社区身份验证,请点击链接xxxxx,项目xxx发布H5失败的错误。
随机推荐
JNI学习1.环境配置与简单函数实现
ShowMeAI —— Show u 三连
【论文笔记】Understanding Long Programming Languages with Structure-Aware Sparse Attention
Cross-species regulatory sequence activity prediction
怎么写专利更容易通过?
Occupy, fill in later
RT-Thread Studio学习(十二)W25Q128(SPI)的读写
实现加载驱动、得到数据库对象、关闭资源的代码复用,将代码提取到相应的工具包里边。优化程序
【虚幻引擎UE】UE5实现WEB和UE通讯思路
图的基本概念
高等代数_证明_两个矩阵乘积为0,则两个矩阵的秩之和小于等于n
Convert callback function to Flow
一天搞定JDBC01:连接数据库并执行sql语句
大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只
The sorting algorithm including selection, bubble, and insertion
预测性维护学习之路
线程的状态
Distributed Computing MapReduce | Spark Experiment
经典动态规划问题的递归实现方法——LeetCode39 组合总和
2022的七夕,奉上7个精美的表白代码,同时教大家改源码快速自用