C#内容加密

 /// <summary>
    /// 字符串加密
    /// </summary>
    public class DesCrypto
    {
        private static readonly byte[] defaultIV;
        static DesCrypto()
        {
            DesCrypto.defaultIV = new byte[8]{
                                                (byte) 18,
                                                (byte) 52,
                                                (byte) 86,
                                                (byte) 120,
                                                (byte) 144,
                                                (byte) 171,
                                                (byte) 205,
                                                (byte) 239
                                             };
        }
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="encryptString">加密字符串</param>
        /// <returns></returns>
        public static string EncryptDES(string encryptString)
        {
            return EncryptDES(encryptString, "lncykangji");
        }
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="decryptString">解密字符串</param>
        /// <returns></returns>
        public static string DecryptDES(string decryptString)
        {
            return DecryptDES(decryptString, "lncykangji");
        }
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="encryptString">加密字符串</param>
        /// <param name="encryptKey">密钥</param>
        /// <returns></returns>
        private static string EncryptDES(string encryptString, string encryptKey)
        {
            try
            {
                byte[] bytes1 = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                byte[] rgbIV = DesCrypto.defaultIV;
                byte[] bytes2 = Encoding.UTF8.GetBytes(encryptString);
                DESCryptoServiceProvider cryptoServiceProvider = new DESCryptoServiceProvider();
                MemoryStream memoryStream = new MemoryStream();
                CryptoStream cryptoStream = new CryptoStream((Stream)memoryStream, cryptoServiceProvider.CreateEncryptor(bytes1, rgbIV), CryptoStreamMode.Write);
                cryptoStream.Write(bytes2, 0, bytes2.Length);
                cryptoStream.FlushFinalBlock();
                return Convert.ToBase64String(memoryStream.ToArray());
            }
            catch
            {
                return encryptString;
            }
        }
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="decryptString">加密字串</param>
        /// <param name="decryptKey">密钥</param>
        /// <returns></returns>
        private static string DecryptDES(string decryptString, string decryptKey)
        {
            if (decryptString == "")
                return "";
            try
            {
                byte[] bytes = Encoding.UTF8.GetBytes(decryptKey);
                byte[] rgbIV = DesCrypto.defaultIV;
                byte[] buffer = Convert.FromBase64String(decryptString);
                DESCryptoServiceProvider cryptoServiceProvider = new DESCryptoServiceProvider();
                MemoryStream memoryStream = new MemoryStream();
                CryptoStream cryptoStream = new CryptoStream((Stream)memoryStream, cryptoServiceProvider.CreateDecryptor(bytes, rgbIV), CryptoStreamMode.Write);
                cryptoStream.Write(buffer, 0, buffer.Length);
                cryptoStream.FlushFinalBlock();
                return Encoding.UTF8.GetString(memoryStream.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
时间: 2024-10-26 20:06:32

C#内容加密的相关文章

【转】两步实现超实用的XML存档 易使用,跨平台,防作弊(内容加密 + 防拷贝)

转载自风宇冲Unity3D教程学院 两步实现超实用的XML存档 本套存档的优点:易使用,跨平台,防作弊(内容加密 + 防拷贝) 脚本下载地址 使用方法非常简单:把GameDataManager和XmlSaver两个脚本添加至工程后(1)新建一个GameObject,起名GameDataManager并将GameDataManager脚本拖到上面.(2)在GameDataManager里的GameData类中添加需要储存的数据OK,跨平台防破解防拷贝的存档就搞定了!之后每次存档调用GameData

邮件内容加密方法-如何让你的邮件隐密邮

早期邮件在互联网上都是以明文传输的,很容易就被窃取,后来邮件通讯使用了SSL通道才保证了邮件在链路上的安全,但是邮件在邮件服务器上的安全一直以来都很难解决,即使是今天依然有***可以将用户的邮件从服务器上窃取出来.所以邮件内容的安全目前是邮件安全的重点,既然是内容安全就要使用加密技术了,如果邮件再服务器上是密文存储的那么即使邮件被窃取下来也不用太担心,前提是你使用的加密技术够强.那么目前都有哪些常用的加密技术用于邮件中呢? 第一种:利用对称加密算法加密邮件 对称加密算法是应用较早的加密算法,技术

Unity3D内容加密保护

仅管资源 (Assets) 在传输时可使用加密进行保护,但在数据流入客户手中后.其内容就有可能被获取.比如,有工具可记录驱动程序级别上的 3D 数据,同意用户提取传送至 GPU 的模型和纹理. 因此,我们通常希望在用户决定提取资源时.可以满足其要求. 当然,假设您须要.也能够对资源包 (AssetBundle) 文件使用自己的数据加密. 一种方法是,使用文本资源 (AssetBundle) 类型将数据存储为字节.您能够加密数据文件,并使用扩展名 .bytes 进行保存,Unity 会将其视为文本

对配置文件内的固定内容加密解密

接到一个需求,背景是对公司的各个服务器环境下的配置文件内存有数据库用户名,数据库密码,因为在配置文件中,许多shell脚本都需要调用配置文件中的数据库用户名,密码,所以一直以明文保存,需求内容就是实现对配置文件内的用户名,密码加密,同时加密后要解决shell脚本文件还可以调用到正确的用户名密码,因此还需要解密. 因为是在服务器环境下,所以可以编写java程序,然后将程序打成jar包,通过shell指令调用jar包实现加密与解密. 因为要实现逆向解密,所以没有采用MD5,只能用比较老的DES或者A

Springboot配置文件内容加密

使用的是jasypt-spring-boot-starter,具体介绍可以参考 https://gitee.com/yangziyi2017/Jasypt-Spring-Boot 引入依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0&

AES —— JAVA中对称加密和解密

package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Base64; impor

PHP借助mcript扩展实现对称加密

本文和大家分享的主要是php中,使用mcript扩展实现对称加密的方法步骤,一起来看看吧,希望对大家学习php有所帮助. 1.对称加密主要利用相同的密钥来实现,而非对称加密利用公钥和私钥来加密,比较而言对称加密速度快,但是安全性要低 为什么使用base64_encode(),主要是用于传参,直接加密完成后不是我们能理解的字符串,也就是大家所说的乱码 2.进行加密(使用mcript扩展,DES类型),关键点在于$key="key:1111",相同的密钥串 <?php header(

Android 数据库加密

一 一个简短的引论   SQLite是一个轻量的.跨平台的.开源的数据库引擎.它的读写效率.资源消耗总量.延迟时间和总体简单性上具有的优越性,使其成为移动平台数据库的最佳解决方式(如Android.iOS). Android系统内置了SQLite数据库.而且提供了一整套的API用于对数据库进行增删改查操作.具体就不具体说明了. 然而.Android平台自带的SQLite有一个致命的缺陷:不支持加密.这就导致存储在SQLite中的数据能够被不论什么人用不论什么文本编辑器查看到.假设是普通的数据还好

JAVA中AES对称加密和解密

AES对称加密和解密 package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Ba