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 加密,通用相关推荐

  1. mac地址随机变化的解决方法(安卓手机通用)不用ROOT

    mac地址随机变化的解决方法(安卓手机通用)不用ROOT 首先关闭wifi 1.进工程模式 *#*#3646633#*#* 2.点击 connectivity 3.点击 wifi 4.点击 nvram ...

  2. OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  3. 计算机硬盘加密的几种方法,对于移动硬盘加密方法 你了解多少种呢?

    原标题:对于移动硬盘加密方法 你了解多少种呢? 移动硬盘自然随身携带,有时会丢失.一旦丢失,内部数据将不再安全.如果内部有重要信息,将严重威胁您的信息安全.那么,什么是移动硬盘加密方法?让我们来看看. ...

  4. OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条

    一分钟速览新闻点! 小米造车"急"了,发布大量自动驾驶相关岗位招聘 阿里平头哥:国产嵌入式 CPU 实现关键技术突破 BOSS 直聘:2021 年应届生岗位平均薪资为 6112 元 ...

  5. Javascript 核心方法加密,JS方法完美在线加密工具介绍及演示

    Javascript 核心方法加密介绍: JS方法加密工具地址:Javascript方法加密,JS核心代码加密,JS不可逆加密 - [JavaScript加密] 优点: 1.完全打乱顺序,并且很难跟踪 ...

  6. CentOS7密码忘记解决方法GRUB菜单加密

    CentOS7的root密码忘记怎么办 注意:该方法只适用于Linux7版本,可以用cat /redhat-release 查看 这里这里只介绍一种方法 1.启动的时候,在启动界面,相应启动项,内核名 ...

  7. java删除通用方法_一个比较通用的java删除文件和文件夹的方法

    在项目中如果有文件上传的时候,通常情况下,我们需要对上传的文件进行维护,一般的维护就是删除文件或删除文件夹和文件夹下的文件,下面的方法则实现了这个需求: /** * 删除文件夹和文件夹下的文件 * @ ...

  8. 方法 | 机器学习(深度学习)通用工作流程

    机器学习(深度学习)通用工作流程 Deep Learning with Python 4.5节 1. 定义问题并装载数据集(Defining the problem and assembling a ...

  9. laravel encryptstring加密使用方法_磁盘加密怎么取消 重装系统后加密磁盘无法使用的解决方法...

    有用户会给磁盘加密,但是重装系统后却无法解密了,该如何解决呢?不少人给磁盘加密后都会忘了解密,导致重装系统后无法使用,下面就给大家分享具体解决方法. 解决方法: 1.单击桌面左下角开始按钮,从弹出的菜 ...

最新文章

  1. electron仿百度网盘-UI搭建思路
  2. sql server转mysql工具下载_SQL Server转换为MySQL工具推荐(Mss2sql)
  3. 【语法】NSString
  4. 第二、三章:信息系统项目管理基础与立项管理-章节真题
  5. 软件驱动安装在docker_别为Docker本地实现不支持GPU发愁,解决方案在此!
  6. JavaScript基础事件(6)
  7. 超硬核的 OCR 开发利器推荐:从场景案例到实操演示,快速掌握OCR模型训练
  8. 火车票售票系统mysql_今日开售!2020元旦火车票可以买了,春运首日车票也快了→...
  9. 微软python免费课程_微软再推免费在线Python教程 面向数据科学和机器学习初学者...
  10. 【ABAP系列】SAP ABAP 宏的简单使用
  11. 陆奇:疫情下的创业者,最不能缺这两大能力
  12. Android5.0 netd架构流程
  13. 保持皮肤水嫩有光泽,让皮肤保湿的土办法 - 生活至上,美容至尚!
  14. 数学建模之优化模型详解
  15. [汇编] 最简单的汇编程序
  16. 域名购买之后怎么使用
  17. it试用评估_it试用期员工自我评价
  18. CAD中怎么管理线缆CAD图层?
  19. [计算机组成原理] 考试前突击挂科训练
  20. 国内影响已扩散,Wannacry蠕虫勒索软件及修复方案

热门文章

  1. Shopee店铺运营效果不好要怎么优化?
  2. (转)左手坐标系和右手坐标系
  3. C++调用OpenCV实现图像阈值处理
  4. 微软苏菲rt能装鸿蒙,微软发布两款Surface平板详细参数配置(图)
  5. Turtle 绘图测试
  6. 王者荣耀5月一日服务器维护,王者荣耀5月25日更新内容 王者荣耀2021年5月25日全服不停机更新公告...
  7. Anaconda、Conda、Miniconda的介绍和使用方法
  8. torch dist分布式数据汇总
  9. 视频处理图像运动矢量
  10. CSDN问答系列--1