dec方法java_javac# dec 加密,通用
java
/**
* 解密DES
* @param key 密钥,长度必须是8的倍数
* @param data 数据源
* @return 解密内容
*/
public final static String decoderDES(String key,String data) throws Exception{
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 从原始密匙数据创建一个DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key.getBytes("utf-8"));
// 创建一个密匙工厂,然后用它把DESKeySpec对象转换成一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
// Cipher对象实际完成解密操作
Cipher cipher = Cipher.getInstance("DES");
// 用密匙初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
// 正式执行解密操作
return new String(cipher.doFinal(hexStr2ByteArr(data)));
}
/**
* 加密DES
* @param key 加密key
* @param data 加密内容
* @return 加密串
*/
public final static String encodeDES(String key,String data) throws Exception{
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 从原始密匙数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key.getBytes("utf-8"));
// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance("DES");
// 用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
// 执行加密操作
byte[] buf = cipher.doFinal(data.getBytes("utf-8"));
return byteArr2HexStr(buf);
}
Net
public static string DES(string str)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(str);
//建立加密对象的密钥和偏移量
//原文使用ASCIIEncoding.ASCII方法的GetBytes方法
//使得输入密码必须输入英文文本
des.Mode = CipherMode.ECB;
des.Key = ASCIIEncoding.UTF8.GetBytes(key);
des.IV = ASCIIEncoding.UTF8.GetBytes(key);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString().ToLower();
}
public static string DESDeCode(string pToDecrypt)
{
// HttpContext.Current.Response.Write(pToDecrypt + "
" + sKey);
// HttpContext.Current.Response.End();
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for (int x = 0; x < pToDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}
//des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
// des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
des.Mode = CipherMode.ECB;
des.Key = ASCIIEncoding.UTF8.GetBytes(key);
des.IV = ASCIIEncoding.UTF8.GetBytes(key);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
// return HttpContext.Current.Server.UrlDecode(System.Text.Encoding.Default.GetString(ms.ToArray()));
return System.Text.Encoding.UTF8.GetString(ms.ToArray());
}
原文:http://www.cnblogs.com/Guroer/p/6107596.html
dec方法java_javac# dec 加密,通用相关推荐
- mac地址随机变化的解决方法(安卓手机通用)不用ROOT
mac地址随机变化的解决方法(安卓手机通用)不用ROOT 首先关闭wifi 1.进工程模式 *#*#3646633#*#* 2.点击 connectivity 3.点击 wifi 4.点击 nvram ...
- OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条...
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- 计算机硬盘加密的几种方法,对于移动硬盘加密方法 你了解多少种呢?
原标题:对于移动硬盘加密方法 你了解多少种呢? 移动硬盘自然随身携带,有时会丢失.一旦丢失,内部数据将不再安全.如果内部有重要信息,将严重威胁您的信息安全.那么,什么是移动硬盘加密方法?让我们来看看. ...
- OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条
一分钟速览新闻点! 小米造车"急"了,发布大量自动驾驶相关岗位招聘 阿里平头哥:国产嵌入式 CPU 实现关键技术突破 BOSS 直聘:2021 年应届生岗位平均薪资为 6112 元 ...
- Javascript 核心方法加密,JS方法完美在线加密工具介绍及演示
Javascript 核心方法加密介绍: JS方法加密工具地址:Javascript方法加密,JS核心代码加密,JS不可逆加密 - [JavaScript加密] 优点: 1.完全打乱顺序,并且很难跟踪 ...
- CentOS7密码忘记解决方法GRUB菜单加密
CentOS7的root密码忘记怎么办 注意:该方法只适用于Linux7版本,可以用cat /redhat-release 查看 这里这里只介绍一种方法 1.启动的时候,在启动界面,相应启动项,内核名 ...
- java删除通用方法_一个比较通用的java删除文件和文件夹的方法
在项目中如果有文件上传的时候,通常情况下,我们需要对上传的文件进行维护,一般的维护就是删除文件或删除文件夹和文件夹下的文件,下面的方法则实现了这个需求: /** * 删除文件夹和文件夹下的文件 * @ ...
- 方法 | 机器学习(深度学习)通用工作流程
机器学习(深度学习)通用工作流程 Deep Learning with Python 4.5节 1. 定义问题并装载数据集(Defining the problem and assembling a ...
- laravel encryptstring加密使用方法_磁盘加密怎么取消 重装系统后加密磁盘无法使用的解决方法...
有用户会给磁盘加密,但是重装系统后却无法解密了,该如何解决呢?不少人给磁盘加密后都会忘了解密,导致重装系统后无法使用,下面就给大家分享具体解决方法. 解决方法: 1.单击桌面左下角开始按钮,从弹出的菜 ...
最新文章
- electron仿百度网盘-UI搭建思路
- sql server转mysql工具下载_SQL Server转换为MySQL工具推荐(Mss2sql)
- 【语法】NSString
- 第二、三章:信息系统项目管理基础与立项管理-章节真题
- 软件驱动安装在docker_别为Docker本地实现不支持GPU发愁,解决方案在此!
- JavaScript基础事件(6)
- 超硬核的 OCR 开发利器推荐:从场景案例到实操演示,快速掌握OCR模型训练
- 火车票售票系统mysql_今日开售!2020元旦火车票可以买了,春运首日车票也快了→...
- 微软python免费课程_微软再推免费在线Python教程 面向数据科学和机器学习初学者...
- 【ABAP系列】SAP ABAP 宏的简单使用
- 陆奇:疫情下的创业者,最不能缺这两大能力
- Android5.0 netd架构流程
- 保持皮肤水嫩有光泽,让皮肤保湿的土办法 - 生活至上,美容至尚!
- 数学建模之优化模型详解
- [汇编] 最简单的汇编程序
- 域名购买之后怎么使用
- it试用评估_it试用期员工自我评价
- CAD中怎么管理线缆CAD图层?
- [计算机组成原理] 考试前突击挂科训练
- 国内影响已扩散,Wannacry蠕虫勒索软件及修复方案