//加密body字符串
DESPlus des = new DESPlus("tanglu");//密钥
base64=Base64.encode(des.encrypt(body.getBytes()));
md5=MD5Util.getMD5String(base64);//只做校验用
/**
* 组装发送的数据
* @param command:命令码
* @param encryptionType:加密格式,0:不加密,1:DES+base64
* @param body:xml格式数据体
* @return
*/
public static String toMessage(String command,String encryptionType,String body){
String md5="";
String base64="";
StringBuffer xml=new StringBuffer();
xml.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
xml.append("<message>");
xml.append("<head>");
xml.append("<version>"+Constants.VERSION+"</version>");//协议版本
xml.append("<command>"+command+"</command>");//命令码
xml.append("<clientId>"+Constants.CLIENT_ID+"</clientId>");//LBC编号
xml.append("<messageId>"+DateUtil.getCurrentDate("yyyyMMddHHmmssSSS")+"</messageId>");//消息流水号(不可重复)
if("0".equals(encryptionType)){//不加密
xml.append("<encryptionType>0</encryptionType>");//加密格式0不加密,1DES base64
byte[] b=null;
try {
b=body.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
md5=MD5Util.getMD5String(b);
}else{
xml.append("<encryptionType>1</encryptionType>");//加密格式0不加密,1DES base64
try {
DESPlus des = new DESPlus("tanglu");
base64=Base64.encode(des.encrypt(body.getBytes()));
md5=MD5Util.getMD5String(base64);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
xml.append("<md>"+md5+"</md>");//校验码
xml.append("</head>");
xml.append("<body>");
if("0".equals(encryptionType)){//不加密
xml.append(body);
}else{
xml.append(base64);
}
xml.append("</body>");
xml.append("</message>");
return xml.toString();
}
分享到:
相关推荐
在"Base64+MD5 util"中,我们可以推断这是一个工具或库,它结合了这两种技术,提供了一种功能:先对数据进行MD5哈希,得到一个固定的哈希值,然后将这个哈希值用Base64编码。这种组合使用可能有以下几种场景: 1. ...
在Java和.NET中,MD5的实现可以通过java.security.MessageDigest或System.Security.Cryptography.MD5类,而Base64编码则可以通过java.util.Base64或System.Convert类来完成,其基本流程与Delphi类似。 虽然MD5由于...
Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt) Java 加密是指使用 Java 语言来实现数据加密、解密和数字签名等操作。数据加密是指将明文数据转换为难以理解的密文,以保护数据的机密性和完整性。Java 提供了...
本文将深入探讨三种常见的加密算法:3DES、MD5以及Base64,并介绍它们在实际应用中的工具和用途。 首先,我们来了解一下3DES(Triple DES,三重数据加密标准)。3DES是一种对称加密算法,它是DES(Data Encryption ...
在Java中,Base64编码和解码通常通过`java.util.Base64`类进行操作,该类自Java 8开始引入。这个类提供了多种方法,如`encodeBytes()`用于编码字节数组,`decode()`用于解码Base64字符串。然而,描述中提到的是一个...
android.util.Base64类
在Java中实现DES加密解密和BASE64编码解码并不复杂,主要涉及到`java.security.SecureRandom`生成随机密钥,`javax.crypto.Cipher`处理加密和解密操作,以及`java.util.Base64`进行BASE64转换。以下是一个简化的示例...
在Java 8及以上版本,`java.util.Base64`提供了方便的API进行Base64编码和解码。例如,可以使用`Base64.getEncoder().encodeToString(byte[])`对字节数组进行编码,`Base64.getDecoder().decode(String)`进行解码。 ...
Base64和MD5是两种常见的数据编码和加密方法,它们在信息安全领域有着广泛的应用。 Base64是一种基于64个可打印字符的编码方式,主要用于将二进制数据转换为可读性强的文本格式,便于在网络上传输。在Java中,我们...
Base64Util通常包含如`encodeToString`(将字节数组转为Base64字符串)和`decode`(将Base64字符串转回字节数组)等方法。 2. FileUtil FileUtil工具类主要处理文件和目录的操作,简化了Java的I/O操作。它可能包含...
Base64和MD5是两种在信息技术领域广泛应用的编码与哈希算法。它们在不同的场景下发挥着关键作用,确保数据的安全性和可读性。 Base64是一种编码方式,主要用于将二进制数据转换为可打印的ASCII字符,以便在网络传输...
”很可能是指引入了第三方库,如Apache Commons Codec或者Java 8及更高版本中的`java.util.Base64`。 在Java 8及以后的版本中,Java标准库提供了内置的Base64支持。你可以通过以下方式创建一个Base64编码器: ```...
Java Base64是一个用于处理Base64编码的库,它为Java开发者提供了便捷的方式来编码和解码Base64数据。Base64是一种在网络上传输二进制数据时常用的编码方式,因为HTTP、电子邮件等协议主要处理ASCII字符,而Base64...
Base64Utils是一个Java库,通常用于在编程中进行Base64编码和解码。Base64是一种将二进制数据转换为可打印字符的方法,以便在不支持二进制数据的环境中(如电子邮件系统)传输。这个jar包是专门为Java开发者设计的,...
在Java中,`java.util.Base64`类提供了Base64编码和解码的功能。`Base64.Encoder`接口代表Base64编码器,而`Base64.Decoder`接口代表Base64解码器。你可以通过`Base64.getEncoder()`和`Base64.getDecoder()`获取默认...
Java实现的Base64、MD5、3DES三种工具 本文档将对Java实现的Base64、MD5、3DES三种工具进行详细的知识点解析。 一、Base64加密工具 Base64是一种基于ASCII字符集的加密方法,它使用一个64字符的字符集来表示二...
解密时,先使用`Base64Util.decodeBase64StringToFile()`将BASE64字符串解码回ZIP文件,再使用相应的工具解压缩。 在实际开发中,这些工具类可以封装成一个完整的库,提供给其他部分代码使用。例如,你可以创建一个...
在JDK 7开始,Java引入了`java.util.Base64`类,提供了全面的Base64编码和解码功能。但在JDK 1.6中,开发者需要依赖第三方库来实现这一功能,因为标准库中没有内建的支持。 解决这个问题的一种常见方法是引入Apache...