- 浏览: 473995 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
zjxkeven:
放在自己工程上不报错,已放在服务器上就报错
java获得CPU使用率,系统内存,虚拟机内存等情况 -
wang1990cool:
能运行?我报错啊、
java获得CPU使用率,系统内存,虚拟机内存等情况 -
yue_ch:
yue_ch 写道getTotalPhysicalMemory ...
java获得CPU使用率,系统内存,虚拟机内存等情况 -
yue_ch:
getTotalPhysicalMemorySize()get ...
java获得CPU使用率,系统内存,虚拟机内存等情况 -
kjmmlzq19851226:
private RealSubject realSubject ...
代理模式,静态代理与动态代理
DES 和 3DES 加解密的使用,加密时,不足8的倍数请补充到8的倍数
package com.crypto; import java.security.spec.KeySpec; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.DESedeKeySpec; public class MyDES { static String DES = "DES/ECB/NoPadding"; static String TriDes = "DESede/ECB/NoPadding"; public static byte[] des_crypt(byte key[], byte data[]) { try { KeySpec ks = new DESKeySpec(key); SecretKeyFactory kf = SecretKeyFactory.getInstance("DES"); SecretKey ky = kf.generateSecret(ks); Cipher c = Cipher.getInstance(DES); c.init(Cipher.ENCRYPT_MODE, ky); return c.doFinal(data); } catch (Exception e) { e.printStackTrace(); return null; } } public static byte[] des_decrypt(byte key[], byte data[]) { try { KeySpec ks = new DESKeySpec(key); SecretKeyFactory kf = SecretKeyFactory.getInstance("DES"); SecretKey ky = kf.generateSecret(ks); Cipher c = Cipher.getInstance(DES); c.init(Cipher.DECRYPT_MODE, ky); return c.doFinal(data); } catch (Exception e) { e.printStackTrace(); return null; } } public static byte[] trides_crypt(byte key[], byte data[]) { try { byte[] k = new byte[24]; int len = data.length; if(data.length % 8 != 0){ len = data.length - data.length % 8 + 8; } byte [] needData = null; if(len != 0) needData = new byte[len]; for(int i = 0 ; i< len ; i++){ needData[i] = 0x00; } System.arraycopy(data, 0, needData, 0, data.length); if (key.length == 16) { System.arraycopy(key, 0, k, 0, key.length); System.arraycopy(key, 0, k, 16, 8); } else { System.arraycopy(key, 0, k, 0, 24); } KeySpec ks = new DESedeKeySpec(k); SecretKeyFactory kf = SecretKeyFactory.getInstance("DESede"); SecretKey ky = kf.generateSecret(ks); Cipher c = Cipher.getInstance(TriDes); c.init(Cipher.ENCRYPT_MODE, ky); return c.doFinal(needData); } catch (Exception e) { e.printStackTrace(); return null; } } public static byte[] trides_decrypt(byte key[], byte data[]) { try { byte[] k = new byte[24]; int len = data.length; if(data.length % 8 != 0){ len = data.length - data.length % 8 + 8; } byte [] needData = null; if(len != 0) needData = new byte[len]; for(int i = 0 ; i< len ; i++){ needData[i] = 0x00; } System.arraycopy(data, 0, needData, 0, data.length); if (key.length == 16) { System.arraycopy(key, 0, k, 0, key.length); System.arraycopy(key, 0, k, 16, 8); } else { System.arraycopy(key, 0, k, 0, 24); } KeySpec ks = new DESedeKeySpec(k); SecretKeyFactory kf = SecretKeyFactory.getInstance("DESede"); SecretKey ky = kf.generateSecret(ks); Cipher c = Cipher.getInstance(TriDes); c.init(Cipher.DECRYPT_MODE, ky); return c.doFinal(needData); } catch (Exception e) { e.printStackTrace(); return null; } } public static void main(String[] args) { byte k1[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, (byte) 0x88 }; byte k2[] = { (byte) 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11 }; byte k24[] = new byte[24]; System.arraycopy(k1, 0, k24, 0, 8); System.arraycopy(k2, 0, k24, 8, 8); System.arraycopy(k1, 0, k24, 16, 8); byte data[] = // hexToBytes("00000000" + "00000000" + "00000000" + "00000000" + "0000c619" + "f4fb7bde" + "51309100" + "00110000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000" + "00000000"); // data = new byte[8]; // byte des_crypt[] = des_crypt(k1, data); // byte des_descrypt[] = des_decrypt(k2, des_crypt); // byte result[] = des_crypt(k1, des_descrypt); byte result[] = trides_crypt(k24, data); // byte origin[] = trides_decrypt(k24, result); System.out.println("Result = " + result); } public static byte[] hexToBytes(String str) { if (str == null) { return null; } else if (str.length() < 2) { return null; } else { int len = str.length() / 2; byte[] buffer = new byte[len]; for (int i = 0; i < len; i++) { buffer[i] = (byte) Integer.parseInt(str.substring(i * 2, i * 2 + 2), 16); } return buffer; } } }
发表评论
-
member系统
2013-08-05 16:18 0member 系统源码 -
hibernate generate tool
2012-09-06 11:33 0hibernate generate tool -
funcation spec and technical spec of vanceinfo
2012-08-02 11:21 0asdfasdf -
Web大数据量页面优化实践
2012-07-02 15:18 980pdf见附件 -
Eclipse Shortcuts
2012-02-29 16:31 894http://www.allapplabs.com/eclip ... -
协议的定制
2011-04-19 17:42 0哀伤的发生的发送方的 wireshark 截取发送消 ... -
uc面试
2011-04-14 18:03 0一、综合测试 1、有7 ... -
velocity输出csv的一种做法
2010-10-12 16:36 2405使用spring mvc + velocity做项目时, ... -
java平台启动脚本
2012-07-27 16:37 4157window平台java启动脚本 @e ... -
flex相关资料
2010-04-24 22:05 0http://www.adobe.com/devnet/fle ... -
开放平台的一些思考
2010-03-22 17:22 0开放平台开发人员编写rpc请求,还是直接进行服务代 ... -
web开发中的中文问题
2014-02-22 21:44 869web开发中的中文 ... -
Evaluation_strategy:java call by sharing赋值策略参数传递
2010-02-14 06:25 187关于java call by value or call by ... -
osgi的企业级开发的一些经验
2010-02-05 17:01 2120前面看了论坛里面关 ... -
spring 3.0 应用springmvc 构造RESTful URL 示例
2010-02-04 12:22 0转载自:http://niyong.iteye.com/blo ... -
声明式缓存,View层缓存讨论
2010-02-03 23:19 1129背景:由于理财专区二期的基金数据一天更新一次。并且都是非操作型 ... -
mysql guide
2010-01-31 17:07 0mysql最大能存多少 InnoDB存储引擎将Inno ... -
面试题系列一:exception未被捕获,但有finally,请问打印结果
2010-01-23 23:33 294看代码,猜结果: package jyy.exceti ... -
hello maven
2010-01-23 23:30 2415创建项目 mvn archetype:create - ... -
有趣的实验报告
2009-12-25 12:51 236淘宝一位同事上大学时 ...
相关推荐
在Java中,我们可以使用`javax.crypto`包中的`Cipher`类来实现3DES加密和解密。首先,我们需要创建一个`SecretKeySpec`对象,用于存储我们的密钥。密钥长度可以是128位(16字节),但3DES实际只使用其中的112位或168...
Java 实现文件的 RSA 和 DES 加密 在现代密码技术中,根据密钥类型的不同,可以将其分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称加密算法用来对敏感数据等信息进行加密,常用的...
主要介绍了使用java自带des加密算法实现文件加密和字符串加密的示例,需要的朋友可以参考下
3des加密 java
Java和JavaScript之间的DES加密解密是信息安全领域中的一个重要话题,主要涉及到数据的保护和通信的安全。DES(Data Encryption Standard)是一种古老的对称加密算法,尽管它在安全性上已不被视为最佳选择,但在某些...
本篇将详细介绍如何在网页前端使用JavaScript进行3DES加密,并在后端Java环境中进行解密。 一、3DES加密原理 3DES是DES的加强版,它使用了3个不同的56位密钥,通过3次独立的DES加密过程来提高安全性。具体流程如下...
Java 中的 3DES 加密解密示例(封装 byte 数组和 16 进制字符串互转) 在 Java 中,3DES 加密是一种常用的加密算法,它可以将明文数据转换为密文数据,以保护数据的安全性。在本示例中,我们将展示如何使用 3DES ...
Java 3des加密算法ECB模式,亲测完美通过。目前网上的大部分算法都通不过或者加进Base64之类的,还要不下载其它jar包。而代码使用时直接下载运行,无须配置和下载额外的jar包 ,只需换上自己的密钥和待加密的数据...
3. `FileDES.java`:可能是一个用于对文件进行DES加密和解密的类,它可能封装了对文件流的操作,以便于读取文件,加密后的内容,再写入到新的文件中。 4. `trying1.java`和`trying.java`:可能是实验性的或者测试用...
3. **JAVA实现DES加密解密** - **javax.crypto命名包**:JAVA中使用`javax.crypto.Cipher`类配合`DESKeySpec`和`SecretKeyFactory`实现DES加密解密。首先需要创建`DESKeySpec`对象,然后通过`SecretKeyFactory`生成...
标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption ...通过理解这些知识点,开发者可以在Java和C#之间实现3DES的兼容加密,确保数据在不同系统间的无缝安全交换。
在给定的代码中,展示了如何在Java中实现3DES加密和解密的过程。 首先,3DES加密过程通常包括以下步骤: 1. **生成密钥**:在Java中,密钥通常通过`KeyGenerator`类生成。在提供的代码中,密钥是通过`getKey()`...
总之,Java DES加密是一个涉及密钥生成、加密过程和解密过程的技术,虽然DES本身在安全性上已经相对较弱,但理解其工作原理和实现方法对于学习加密技术仍然是有价值的。在实际应用中,应优先考虑使用更安全的加密...
3DES的基本流程是:数据先经过一次DES加密,然后解密,再加密,这样就使用了三个不同的密钥,增强了密码的复杂性和安全性。在Java中,我们可以使用`javax.crypto.Cipher`类以及`java.security.Key`接口来实现3DES的...
通过以上介绍,我们理解了DES加密算法的基本原理,并学习了在JavaScript和Java中如何实现DES加密。在实际开发中,根据项目需求,还可以考虑使用更安全的AES加密算法或者其他对称加密方法,但其核心原理和互通实现...
在提供的`DESUtil.java`文件中,可能包含了实现DES加密和解密功能的类。这个类通常会有以下几个核心方法: 1. **生成密钥**:`generateKey()` 方法,通过`KeyGenerator.getInstance("DES")`获取DES的KeyGenerator...
Java写的DES的一个类”表明了这个压缩包包含两个部分:一个是使用Delphi编程语言编写的用于执行DES(Data Encryption Standard)加密和解密的小程序,另一个是用Java实现的DES加密类。DES是一种广泛使用的对称加密...
在Java中实现DES加密和解密是一项常见的任务,通常涉及到`javax.crypto`包中的类和接口。本篇文章将详细阐述DES加密解密的Java实现过程。 首先,我们需要了解DES算法的基本原理。DES是一种块密码,它将明文数据分成...
在项目`encryption_and_decryption`中,可能包含了使用JAVA实现RSA和3DES加密解密的示例代码,通过这些代码可以学习如何在实际开发中应用这两种加密技术。了解并掌握这些加密算法的原理和使用方法,对于提升应用程序...
des加密算法(js+java)加密与解密结果相同 包含三个文件 : des.js des.html ,用于实现前端脚本的加密与解密 des.java 用于后台的加密解密操作; 项目中正好用到,已经过验证,两个加密解密结果相同,分享给...