加密解密(源自Discuz!NT3.1)
方便你我Copy!
/// 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>
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)相关推荐
- php动态密码和加密解密函数的使用(动态密码、Discuz核心函数AuthCode、任意输入密码验证)
php加密解密的使用 一.项目说明 二.项目分析 1.js外部文件 2.HTML容器构建 3.layui前端验证 4.php后端验证 封装函数 密码验证规则 strpos内置函数 三.经典的核心加密函 ...
- 白话 discuz加密解密算法,包你懂
今天和大家分享一下discuz的加密和解密算法 研究了一个星期了, 总结了这个 算法有三个特点 1,动态性,同一字符串每次加密的密文都不一样 2,时间性,可以自己加一个限期参数,以秒为单位 3,统一性 ...
- 加密解密php,PHP实现的加密解密处理类
本文实例讲述了PHP实现的加密解密处理类.分享给大家供大家参考,具体如下: /*=========================================================== ...
- 加密解密php,2个比较经典的PHP加密解密函数分享
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...
- java 加密_Java版SMS4加密解密算法
特别说明:该专栏文章均来源自微信公众号<大数据实战演练>,欢迎关注! 前言 最近工作中需要实现HBase自定义扩展sms4加密,今天就先来说一下Java版的SMS4加密解密算法的具体实现. ...
- cls certificate.php,php加密解密处理类
PHP加密解密也是常有的事,发现discuz论坛里的PHP加密解密处理类代码,感觉挺不错,在用的时候,要参考Discuz论坛的passport相关函数,后面我会附上使用方法. php加密解密处理类&l ...
- php 字符串m5加密解密_PHP加密解密字符串汇总
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...
- PHP代码的加密解密
PHP语言作为脚本语言的一种,由于不需要进行编译,所以通常PHP程序的分发都是直接发布源代码.对于一些开源软件来说,这并没有什么问题,因为它本来就希望有更多的人阅读代码,希望有更多的人参与进来,而对于 ...
- php常用的加密解密方法
1.php 自带的加密函数: 1-1.不可逆的加密函数为:md5().crypt(): md5() 用来计算 MD5 哈稀.语法为:string md5(string str); crypt() 将字 ...
- php解密方法,六种php加密解密方法实例讲解
代码演示如下: 方法一 function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcryp ...
最新文章
- python进阶书籍的推荐 知乎-知乎看了很多推荐,最终选了这本Python入门
- 仿OpenStack开发云计算管理软件”--熟悉开发环境
- 计算机配置里 无 管理模板,组策略里打开后没有管理模板
- 函数的二义性与函数对象的传递问题(通过实现vector的to_string示例)
- 小米回应“上海徐汇拿地”:不用于造车
- TheWorld不能访问Taobao的解决办法
- 最低服务器协议,的WebSocket服务器最低要求
- Ubuntu 安装 Apache Airflow
- PCA相关 PCL库和Matlab对比
- error: exception handling disabled, use -fexceptions to enable
- anaconda各个版本下载资源
- 持久层框架Hibernate和Mybatis对比
- Ubuntu/Debian安装护眼软件f.lux indicator applet
- mysql查询结果作为一个表_例题:数据库查询结果作为一个表
- qml鼠标拖动_Arcgis for qml - 鼠标拖拽移动
- 孤独,是优秀的必经之路
- 海贼王英文版 ONE PIECE百度网盘
- 6个Python数据分析神器~
- 前端如何实现一个滚动的文本字幕
- python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣
热门文章
- 中文NER的正确打开方式: 词汇增强方法总结 (从Lattice LSTM到FLAT)
- 【长文详解】从Transformer到BERT模型
- 【NLP】语义角色标注(Semantic Role Labelling)
- 【ACL2019】看 NLP 未来发展趋势
- 干货 | PyTorch常用代码段整理合集
- 字符集及其存储方式(解决乱码问题)
- xgboost的原理没你想像的那么难
- PyTorch学习—21.GPU的使用
- 深度学习2.0-25.Train-Val-Test划分检测过拟合(交叉验证)
- PLA算法(感知机)