import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
//import com.modernmedia.mw.tag.Messages;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Crypt {
// --------------------------------------------------------------------------------------------
// 获得密钥
public SecretKey getKey(String s) throws Exception {
//s ="g8TlgLEc6oqZxdwGe6pDiKB8Y";
System.out.println("s=="+s);
char[] ss = s.toCharArray();
String sss="";
for(int i = 0;i<ss.length;i=i+2)
{
sss = sss + ss[i];
}
SecretKeyFactory kf = SecretKeyFactory.getInstance("DES");
DESKeySpec ks = new DESKeySpec(sss.substring(0,8).getBytes());
SecretKey kd = kf.generateSecret(ks);
return kd;
}
// --------------------------------------------------------------------------------------------------
// 返回加密后的字符串
// key是用于生成密钥的字符串,input是要加密的字符串
public String getEncryptedString(String key, String input) {
String base64 = "";
try {
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, getKey(key));
System.out.print("getKey(key)==="+getKey(key)+"key=="+key);
byte[] inputBytes = input.getBytes("UTF8");
byte[] outputBytes = cipher.doFinal(inputBytes);
BASE64Encoder encoder = new BASE64Encoder();
base64 = encoder.encode(outputBytes);
} catch (Exception e) {
base64 = e.getMessage();
}
return base64;
}
// --------------------------------------------------------------------------------------------------
// 返回解密后的字符串
// key是用于生成密钥的字符串,input是要解密的字符串
public String getDecryptedString(String key, String input) {
String result = null;
try {
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, getKey(key));
BASE64Decoder decoder = new BASE64Decoder();
byte[] raw = decoder.decodeBuffer(input);
byte[] stringBytes = cipher.doFinal(raw);
result = new String(stringBytes, "UTF8");
} catch (Exception e) {
result = e.getMessage();
}
return result;
}
public static void main(String[] args){
Crypt mycrypt = new Crypt();
try {
//SecretKey skey = mycrypt.getKey("g8TlgLEc6oqZxdwGe6pDiKB8Y");
String ss = mycrypt.getEncryptedString("6678912345678906", "胖子");
System.out.println("ss=="+ss);
String ss2 = mycrypt.getDecryptedString("6678912345678906",ss);
System.out.println("ss2=="+ss2);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//String ss = Messages.getString("SendToMemberTag.5");
//System.out.print(ss);
分享到:
相关推荐
Java加密解密程序是软件开发中的一个重要领域,主要用于保护数据的安全性和隐私性。在这个特定的案例中,我们讨论的是一个基于MyEclipse开发的Java应用程序,它实现了凯撒加密法,这是一种古老但基础的加密技术。...
"java实现文件加密解密" Java 实现文件的加密与解密是指利用 Java 语言将资源文件(包括图片、动画等类型)进行简单的加密和解密。这种策略的原因和好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,...
标题中的“用Delphi写的一个DES的加密解密小程序,Java写的DES的一个类”表明了这个压缩包包含两个部分:一个是使用Delphi编程语言编写的用于执行DES(Data Encryption Standard)加密和解密的小程序,另一个是用Java...
该Java加密解密小程序提供了一个简单的图形化界面,用户可以通过直观的方式实现基本的文本加密和解密功能。尽管其加密算法相对简单,但作为学习Java Swing GUI编程和基础加密技术的一个示例项目是非常有价值的。
Java加密解密工具是开发过程中不可或缺的部分,尤其是在处理敏感数据时,确保数据的安全性至关重要。在Java中,我们可以使用各种库和内置API来实现加密和解密操作。本篇文章将深入探讨Java加密解密的核心概念、常用...
Java版的PGP加密解密程序是PGP技术在Java平台上的实现,它允许开发者和用户在Java环境中执行加密、解密和验证操作。由于Java的跨平台特性,这样的实现使得PGP功能可以轻松地集成到各种操作系统和应用程序中。 **...
总的来说,JCT是一个全面的Java加密解密解决方案,它集成了多种加密算法,并提供方便的API,简化了开发过程。通过深入研究其提供的文档和源代码,开发者可以更好地利用这个工具包来提高应用程序的安全性。
需要安装JAVA虚拟机 双击程序,在程序界面的“文件路径”输入需要加密的文件,在“保存路径”输入加密后保存的路径,然后就是输入密码,按加密,完成! 解密: 需要按解密单选框!
在标题提到的"小程序+java后端统一 des 加密解密"中,我们主要讨论的是使用DES(Data Encryption Standard)算法进行数据加密和解密的实践,这涉及到小程序客户端与Java后端服务之间的安全通信。 DES是一种对称加密...
《JAVA加密和解密的艺术(第二版)》是一本深入探讨Java平台上的加密与解密技术的专业书籍。这本书不仅提供了理论知识,还包含了丰富的实践示例,帮助读者理解和掌握加密技术在实际应用中的运用。其内容涵盖了从基本...
在Java中实现微信小程序的加密数据解密是一个关键的技术环节,尤其对于那些涉及到用户隐私或者敏感信息的应用。微信小程序为了保证数据的安全传输,采用了特定的加密机制,这要求开发者在后端服务器上进行相应的解密...
本次使用JAVA语言,采用3DES加密算法进行对文本文件的加密,通过二进制和十六进制的转换来实现,产生加密文件,再对加密文件进行解密。 关键词:DES加密算法、加密、解密。摘要 随着现代网络技术的飞速发展,人们...
Java文本加密解密是计算机编程领域中的一个重要主题,特别是在数据安全和信息安全方面。在这个课程设计中,我们将使用Java语言来实现一个简单的文本加解密系统,该系统具有图形用户界面(GUI),使得用户能够方便地...
Java RSA 加密解密程序是一种基于公钥/私钥对的加密算法,广泛应用于网络安全、数据保护和数字签名等领域。RSA是由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出的,是公开密钥加密算法的鼻祖。在这个程序中...
10. **代码实践**: 通过阅读`一个用java写的加解密程序.txt`,我们可以学习到具体的实现细节,包括密钥生成、加密解密流程以及可能用到的第三方库。 综上所述,这个Java加解密程序涉及到了密码学的基础理论、Java的...
本项目"用Java实现的图片加密程序"正是关注这一主题,它利用Java的IO流处理技术,实现了对图片文件的加密和解密功能。以下是关于这个项目的一些详细知识点: 1. **Java IO流**:Java的IO流是处理输入输出的基础,它...
java实现md5 加密解密(在网络中MD5是著名的不可逆算法,但是如果知道MD5的加密的字符串 则可以通过自己的加密算法对明文进行加密,对加密后的密文与字符串匹配; 匹配成功,表示找到明文;但是此程序的时间耗费较高!仅...
在给定的程序中,开发者已经实现了一个带有详细注释的GUI(图形用户界面),使得用户可以方便地进行AES加密和解密操作。下面将详细介绍AES加密解密的核心原理以及在Java中如何实现这一过程。 AES加密解密的核心原理...
2. Java JAR包:这可能是一个包含Java RSA加密解密功能的库,可以导入到Java项目中使用。 3. Demo:这个演示程序可能包含了如何在JavaScript和Java之间使用RSA加密解密的实际示例,展示了如何在前端和后端之间安全地...
java-des加密解密程序,基于java编写的des,3des加密程序,包括MAC校验,MD5校验等