栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

Unity3D 数据加密

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity3D 数据加密

加密主要使用 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";   

    /// 
    /// AES 加密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
    /// 
    /// 待加密密文
    public static string AESEncrypt(string EncryptString)
    {
        return Encoding.UTF8.GetString(AESEncrypt(Encoding.UTF8.GetBytes(EncryptString)));
    }
    /// 
    /// AES 加密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
    /// 
    /// 待加密密文
    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;
    }
    /// 
    /// AES 解密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
    /// 
    /// 待解密密文
    public static string AESDecrypt(string DecryptString)
    {
        return Encoding.UTF8.GetString(AESDecrypt(Convert.FromBase64String(DecryptString)));
    }
    /// 
    /// AES 解密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法)
    /// 
    /// 待解密密文
    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;
    }
}

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1036925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号