方便你我Copy!

AES加密解密

/// <summary>
/// AES加密解密
/// </summary>
public class AES
{
//默认密钥向量
private static byte[] Keys = { 0x41, 0x72, 0x65, 0x79, 0x6F, 0x75, 0x6D, 0x79, 0x53, 0x6E, 0x6F, 0x77, 0x6D, 0x61, 0x6E, 0x3F };

public static string Encode(string encryptString, string encryptKey)
{
encryptKey = Utils.GetSubString(encryptKey, 32, "");
encryptKey = encryptKey.PadRight(32, ' ');

RijndaelManaged rijndaelProvider = new RijndaelManaged();
rijndaelProvider.Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32));
rijndaelProvider.IV = Keys;
ICryptoTransform rijndaelEncrypt = rijndaelProvider.CreateEncryptor();

byte[] inputData = Encoding.UTF8.GetBytes(encryptString);
byte[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputData,0,inputData.Length);

return Convert.ToBase64String(encryptedData);
}

public static string Decode(string decryptString, string decryptKey)
{
try
{
decryptKey = Utils.GetSubString(decryptKey, 32, "");
decryptKey = decryptKey.PadRight(32, ' ');

RijndaelManaged rijndaelProvider = new RijndaelManaged();
rijndaelProvider.Key = Encoding.UTF8.GetBytes(decryptKey);
rijndaelProvider.IV = Keys;
ICryptoTransform rijndaelDecrypt = rijndaelProvider.CreateDecryptor();

byte[] inputData = Convert.FromBase64String(decryptString);
byte[] decryptedData = rijndaelDecrypt.TransformFinalBlock(inputData,0,inputData.Length);

return Encoding.UTF8.GetString(decryptedData);
}
catch
{
return "";
}

}

}

DES加密解密

/// <summary>
/// DES加密解密
/// </summary>
public class DES
{
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string Encode(string encryptString, string encryptKey)
{
encryptKey=encryptKey.Substring(0, 8); encryptKey = encryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());

}

/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string Decode(string decryptString, string decryptKey)
{
try
{
decryptKey = decryptKey.Substring(0, 8);
decryptKey = decryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();

MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return "";
}
}
}

转载于:https://www.cnblogs.com/howDo/archive/2010/12/10/1902371.html

加密解密(源自Discuz!NT3.1)相关推荐

  1. php动态密码和加密解密函数的使用(动态密码、Discuz核心函数AuthCode、任意输入密码验证)

    php加密解密的使用 一.项目说明 二.项目分析 1.js外部文件 2.HTML容器构建 3.layui前端验证 4.php后端验证 封装函数 密码验证规则 strpos内置函数 三.经典的核心加密函 ...

  2. 白话 discuz加密解密算法,包你懂

    今天和大家分享一下discuz的加密和解密算法 研究了一个星期了, 总结了这个 算法有三个特点 1,动态性,同一字符串每次加密的密文都不一样 2,时间性,可以自己加一个限期参数,以秒为单位 3,统一性 ...

  3. 加密解密php,PHP实现的加密解密处理类

    本文实例讲述了PHP实现的加密解密处理类.分享给大家供大家参考,具体如下: /*=========================================================== ...

  4. 加密解密php,2个比较经典的PHP加密解密函数分享

    项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...

  5. java 加密_Java版SMS4加密解密算法

    特别说明:该专栏文章均来源自微信公众号<大数据实战演练>,欢迎关注! 前言 最近工作中需要实现HBase自定义扩展sms4加密,今天就先来说一下Java版的SMS4加密解密算法的具体实现. ...

  6. cls certificate.php,php加密解密处理类

    PHP加密解密也是常有的事,发现discuz论坛里的PHP加密解密处理类代码,感觉挺不错,在用的时候,要参考Discuz论坛的passport相关函数,后面我会附上使用方法. php加密解密处理类&l ...

  7. php 字符串m5加密解密_PHP加密解密字符串汇总

    项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...

  8. PHP代码的加密解密

    PHP语言作为脚本语言的一种,由于不需要进行编译,所以通常PHP程序的分发都是直接发布源代码.对于一些开源软件来说,这并没有什么问题,因为它本来就希望有更多的人阅读代码,希望有更多的人参与进来,而对于 ...

  9. php常用的加密解密方法

    1.php 自带的加密函数: 1-1.不可逆的加密函数为:md5().crypt(): md5() 用来计算 MD5 哈稀.语法为:string md5(string str); crypt() 将字 ...

  10. php解密方法,六种php加密解密方法实例讲解

    代码演示如下: 方法一 function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcryp ...

最新文章

  1. python进阶书籍的推荐 知乎-知乎看了很多推荐,最终选了这本Python入门
  2. 仿OpenStack开发云计算管理软件”--熟悉开发环境
  3. 计算机配置里 无 管理模板,组策略里打开后没有管理模板
  4. 函数的二义性与函数对象的传递问题(通过实现vector的to_string示例)
  5. 小米回应“上海徐汇拿地”:不用于造车
  6. TheWorld不能访问Taobao的解决办法
  7. 最低服务器协议,的WebSocket服务器最低要求
  8. Ubuntu 安装 Apache Airflow
  9. PCA相关 PCL库和Matlab对比
  10. error: exception handling disabled, use -fexceptions to enable
  11. anaconda各个版本下载资源
  12. 持久层框架Hibernate和Mybatis对比
  13. Ubuntu/Debian安装护眼软件f.lux indicator applet
  14. mysql查询结果作为一个表_例题:数据库查询结果作为一个表
  15. qml鼠标拖动_Arcgis for qml - 鼠标拖拽移动
  16. 孤独,是优秀的必经之路
  17. 海贼王英文版 ONE PIECE百度网盘
  18. 6个Python数据分析神器~
  19. 前端如何实现一个滚动的文本字幕
  20. python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣

热门文章

  1. 中文NER的正确打开方式: 词汇增强方法总结 (从Lattice LSTM到FLAT)
  2. 【长文详解】从Transformer到BERT模型
  3. 【NLP】语义角色标注(Semantic Role Labelling)
  4. 【ACL2019】看 NLP 未来发展趋势
  5. 干货 | PyTorch常用代码段整理合集
  6. 字符集及其存储方式(解决乱码问题)
  7. xgboost的原理没你想像的那么难
  8. PyTorch学习—21.GPU的使用
  9. 深度学习2.0-25.Train-Val-Test划分检测过拟合(交叉验证)
  10. PLA算法(感知机)