- 浏览: 972479 次
- 性别:
- 来自: 山西
文章分类
最新评论
-
白小默:
你好 可以提供下源码DEMO吗,不知为何,我导出来的excel ...
jxls 使用模板文件导出生成excel -
zkzqzzz:
博主威武!
让微信二维码扫描您的APK -
zkzqzzz:
感谢博主 原来那些类都不是必须的 或者自己写!!博主真棒 ...
抢红包插件实现原理浅析 -
zkzqzzz:
博主 请问你的其他类在哪里呢?
抢红包插件实现原理浅析 -
zkzqzzz:
其他类在哪呢?
抢红包插件实现原理浅析
import java.io.*;
import javax.crypto.*; import javax.crypto.spec.*; import java.security.*; public class desede { public static void main(String args[]) throws Exception { if (args[0].compareTo("+") == 0)// 控制是加密还是减密 { KeyGenerator kg;// 生产密锁的工厂 FileInputStream fin;// 明文所在的文件 FileOutputStream fout;// 密文所在的文件 kg = KeyGenerator.getInstance("DESede");// 产生DESede算的密锁 fin = new FileInputStream(args[1]);// 打开文件 fout = new FileOutputStream(args[1] + ".DESede");// 写密文文件 kg.init(168);// 初始化密锁 SecretKey k = kg.generateKey();// 得到密锁 Cipher cp = Cipher.getInstance("DESede");// 生成加密工厂对象,DESede为加密算法 cp.init(Cipher.ENCRYPT_MODE, k);// 初始化加密器,Cipher.ENCRYPT_MODE指定加密,k为密锁 File f = new File(args[1]);// 得到明文大小 int num = (int) f.length(); byte[] rb = new byte[num]; fin.read(rb);// 读取明文 byte[] cb = cp.doFinal(rb);// 加密,将加密结果放在cb字节数组中 fout.write(cb);// 写入文件 fin.close(); fout.close(); fout = new FileOutputStream("key.DESede");// 保存密锁 fout.write(k.getEncoded()); fout.close(); System.out.print("\r\n\r\n"); System.out.print("加密文件" + args[1] + "完成\r\n"); System.out.print("密锁文件key.DESede\r\n"); return; } if (args[0].compareTo("-") == 0)// 减密时 { FileInputStream fin;// 用于打开密锁文件和密明文件 FileOutputStream fout;// 写明文文件 fin = new FileInputStream("key.DESede"); File f = new File("key.DESede"); int num = (int) f.length(); byte[] kb = new byte[num]; fin.read(kb);// 读到密锁 fin.close(); SecretKeySpec k = new SecretKeySpec(kb, "DESede");// 将密锁存在SecretKey对象中 Cipher cp = Cipher.getInstance("DESede");// 生成解密工厂,DESede为算法 cp.init(Cipher.DECRYPT_MODE, k);// 初始化解密,Cipher.DECRYPT_MODE为解密方式,k为密锁 fout = new FileOutputStream(args[1]); fin = new FileInputStream(args[1] + ".DESede"); f = new File(args[1] + ".DESede"); num = (int) f.length(); kb = new byte[num]; fin.read(kb);// 读取密文 byte[] m = cp.doFinal(kb);// 解密,将结果存在m字节数组中 fout.write(m);// 写入文件 fin.close(); fout.close(); return; } else// 如果不是有效参数,则出现帮助信息 { System.out.print("\r\n\r\n"); System.out.print("DESede算法加密解密:\r\n"); System.out.print(" '-' :减号解密;\r\n"); System.out.print(" filename:解密文件名;\r\n"); System.out.print(" '+' :加号加密;\r\n"); System.out.print(" filename:加密文件名;\r\n"); } }//main }//class import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import net.peoplesolution.wss.conf.SystemConfProp; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class DESede { public DESede() { } public static byte[] getKey(String keystr) { int l = keystr.length() / 2; byte w[] = new byte[l]; for(int i = 0; i < l; i++) w[i] = (byte)(Integer.parseInt(keystr.substring(i * 2, i * 2 + 2), 16) & 0xff); return w; } private static byte[] EncryptionByteData(byte SourceData[], String sKey, String sIV) throws Exception { byte retByte[] = (byte[])null; byte EncryptionByte[] = getKey(sKey); javax.crypto.SecretKey securekey = new SecretKeySpec(EncryptionByte, "DESede"); IvParameterSpec spec = new IvParameterSpec(getKey(sIV)); Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); cipher.init(1, securekey, spec); retByte = cipher.doFinal(SourceData); return retByte; } private static byte[] DecryptionByteData(byte SourceData[], String sKey, String sIV) throws Exception { byte retByte[] = (byte[])null; byte EncryptionByte[] = getKey(sKey); javax.crypto.SecretKey securekey = new SecretKeySpec(EncryptionByte, "DESede"); IvParameterSpec spec = new IvParameterSpec(getKey(sIV)); Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); cipher.init(2, securekey, spec); retByte = cipher.doFinal(SourceData); return retByte; } public static String EncryptCode(String strTobeEnCrypted, String sKey, String sIV) throws Exception { String retStr = null; byte retByte[] = (byte[])null; byte sorData[] = strTobeEnCrypted.getBytes("UTF-8"); retByte = EncryptionByteData(sorData, sKey, sIV); BASE64Encoder be = new BASE64Encoder(); retStr = be.encode(retByte); return retStr; } public static String DecryptCode(String strTobeDeCrypted, String sKey, String sIV) throws Exception { if(strTobeDeCrypted.lastIndexOf(" ") > 0) strTobeDeCrypted = strTobeDeCrypted.replaceAll(" ", "+"); String retStr = null; byte retByte[] = (byte[])null; BASE64Decoder bd = new BASE64Decoder(); byte sorData[] = bd.decodeBuffer(strTobeDeCrypted); retByte = DecryptionByteData(sorData, sKey, sIV); retStr = new String(retByte, "UTF-8"); return retStr; } public static String DecryptCode(String strTobeDeCrypted) throws Exception { return DecryptCode(strTobeDeCrypted, getKey(), getIV()); } public static String EncryptCode(String strTobeEnCrypted) throws Exception { return EncryptCode(strTobeEnCrypted, getKey(), getIV()); } private static String getKey() { if(Key == null || Key.equals("")) Key = SystemConfProp.getInstance().getProperty("key"); return Key; } private static String getIV() { if(IV == null || IV.equals("")) IV = SystemConfProp.getInstance().getProperty("iv"); return IV; } private static final String DESede = "DESede/CBC/PKCS5Padding"; private static String Key; private static String IV; } |
发表评论
-
java通过sftp JSch 上传文件下载文件查看文件目录,测试可用
2019-12-19 18:19 972基于maven ... -
服务器之间的 zip 文件定时传送
2019-12-19 10:28 5191、expect 安装 将expect和tcl的软 ... -
Java/web/jsp根据pdf模板生成荣誉证书PDF文件
2019-07-19 14:48 9551.前言 最近博主在 ... -
Java生成荣誉证书PDF文件
2019-07-19 13:08 1380Java生成荣誉证书PD ... -
百度云API刷脸
2019-07-13 11:41 631刷脸登录是基于人工智能、生物识别、3D传感、大数据风控技术, ... -
maven--maven配置多个源文件夹
2019-06-13 21:32 930需求 Maven 为我们提供了一致的项目目录配置(源文件 ... -
绿盟检测出“检测到目标URL存在http host头攻击漏洞”如何解决
2019-06-09 10:00 1001绿盟检测出“检测到目标URL存在http host头攻击漏 ... -
Linux安装apache及其简单的反向代理配置
2019-06-07 09:06 637Apache简介 Apache HTTP Se ... -
Linux二进制安装apache2.4.25
2019-06-07 09:06 714Linux二进制安装apache2.4. ... -
weblogic配置https,http自动跳转转https,ssl
2019-05-21 09:44 942最近,公司要求将http ... -
bootstrap-table组合表头
2019-03-06 10:04 913bootstrap-table组合表头 ... -
[Weblogic]如何清理缓存
2019-03-04 15:23 857[Weblogic]如何清理缓存 ... -
Guns第十节Swagger的讲解
2019-01-23 16:51 6422018年08月01日 15:54:30 ze ... -
Anaconda详细安装使用教程
2019-01-22 15:07 613关注微信公众号【Mi ... -
Windows系统下Eclipse上搭建Python开发环境
2019-01-22 15:00 328Windows系统下Eclipse上搭 ... -
Python 3.6 中使用pdfminer解析pdf文件
2019-01-22 14:50 935所使用python环境为最新 ... -
Python提取PDF内容(文本、图像、线条等)
2019-01-22 14:43 7545使用Python抽取PDF文件内 ... -
用python解析pdf中的文本与表格【pdfplumber的安装与使用】
2019-01-22 14:40 1533我们接触到的很多文档资料都是以pdf格式存在的,比如:论文, ... -
java实现PDF转HTML
2019-01-21 10:14 923java实现PDF转HTML 问题场景: ... -
JAVA PDFBOX 读取PDF表格
2019-01-18 17:39 2934最近在帮公司做工具,需要读取PDF中表格的数据。网上查了, ...
相关推荐
Java加密解密技术在软件开发中扮演着至关重要的角色,特别是在数据安全领域。3DES(Triple Data Encryption Standard)是一种常见的加密算法,它基于DES(Data Encryption Standard)并对其进行了加强,提高了安全性...
该代码使用Java语言编写,主要涉及到DESede加密算法、SHA-1哈希算法和Base64编码等技术。 一、DESede加密算法 DESede加密算法是一种三重DES加密算法,使用三个不同的密钥对数据进行加密和解密操作。该算法的key ...
6. **DESede加密**:DESede,也称为3DES,是DES的一个加强版本,通过使用三个不同的56位密钥进行三次加密,提高安全性。这使得破解难度大大增加,但相对于AES,速度较慢。 7. **RSA加密**:RSA是非对称加密算法,它...
在提供的文件`加密web.zip`和`java.zip`中,很可能包含了Java实现3DES加密解密的代码示例,以及可能用于Web端的JavaScript实现。这些代码可以帮助开发者理解如何在实际项目中跨平台地应用3DES加密技术。 3DES虽然...
Java作为一种广泛使用的编程语言,提供了丰富的库和工具来处理数据加密和解密。本篇文章将详细探讨Java中的对称加解密技术,特别是DESEDE(也称为3DES)算法。 对称加密是一种常见的加密方式,它的特点是加密和解密...
本篇将详细介绍如何在网页前端使用JavaScript进行3DES加密,并在后端Java环境中进行解密。 一、3DES加密原理 3DES是DES的加强版,它使用了3个不同的56位密钥,通过3次独立的DES加密过程来提高安全性。具体流程如下...
Java提供了强大的API支持,可以帮助开发者轻松实现加密解密功能。下面是一个使用DES算法实现的加密解密工具类的例子: ```java import java.io.*; import javax.crypto.*; import javax.crypto.spec.*; import java...
Java 使用 Hutool 实现 AES、DES 加密解密的方法 Java 中使用 Hutool 实现 AES、DES 加密解密的方法主要介绍了如何使用 Hutool 库来实现 AES 和 DES 加密解密。Hutool 库对 Java 中的 Cipher 对象进行了封装,简化...
首先,为了使用3DES,Java程序需要引入特定的JAR包,这些包通常位于`JAVA_HOME/jre/lib/`目录下,包括`jce.jar`、`US_export_policy.jar`、`local_policy.jar`以及`ext/sunjce_provider.jar`。这些JAR文件包含了加密...
总的来说,通过Java实现3DES加密解密,我们需要理解加密算法的基本原理,熟悉Java的相关加密库,并掌握如何生成和使用密钥。在实际开发中,确保数据的安全性至关重要,因此正确地使用加密技术是每个IT专业人员必备的...
Java中的加密解密基础 在Java中,进行数据加密与解密主要依赖于Java Cryptography Extension (JCE)。JCE提供了强大的加密支持,包括对称加密、非对称加密以及消息摘要等功能。在实际应用中,我们通常会结合多种...
在IT领域,跨平台的数据安全通信是至...这些示例可以作为学习和参考的起点,帮助开发者理解跨平台加密解密的关键步骤和注意事项。在实际项目中,应根据具体需求和安全策略来调整这些示例,以确保数据的安全性和可靠性。
本项目"FileEncrypter.rar"提供了Java实现的三重DES加密解密功能,允许用户对各种文件进行加解密操作,并且包含界面源码,使得用户交互更为直观易用。 首先,了解三重DES算法的基本原理。DES是一种使用56位密钥的...
在Java中,可以使用`javax.crypto.Cipher`类来实现DESede加密和解密: ```java Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); SecretKey key = ...; // 创建密钥 cipher.init(Cipher.ENCRYPT_...
在Java中实现3DES加密解密是一个常见的需求,尤其是在需要保护敏感数据的场景下。 本文将详细介绍如何在Java中实现3DES加密解密算法,并提供示例代码来帮助理解整个过程。 #### 二、基础知识 1. **DES**:DES是一...
### Java中的DES加密和解密 #### 一、概述 数据加密标准(Data Encryption Standard,简称DES)是一种广泛使用的对称加密算法。它最初由IBM公司开发,并在1970年代中期被美国国家标准局(现为国家标准与技术研究院...
本文将深入探讨如何实现Java和JavaScript之间可互操作的DES(Data Encryption Standard)和3DES(Triple DES)加密解密算法,这对于跨平台的Web应用尤其重要。我们将讨论以下几个方面:DES和3DES的基本原理、Java与...