- 浏览: 192380 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
LZ645596034:
非常感谢!!chain 用于把相关的几个action连接起来, ...
【转】基于注解的struts action跳转 @Result 跳转到另一个action -
cuishuangjia:
把数据库中的数据,拷贝到EXCEL中的。 DbTools工具下 ...
【转】mysql导入数据时 USING BTREE 错误解决办法 -
maoghj:
【转】mysql同一表记录某一字段内容合并 -
lichuanbao:
这个很给力啊,哈哈
JNotifylinux下部署出现的问题 -
beat_it_:
lipulvp 写道能把代码提供一个吗
【转】 一个请假单流程的实现(struts2.1.8+spring2.5+hibernate3集成jbpm4.3)
常用的几种加解密方式备份:
1、MD5方式:
import java.security.MessageDigest;
String s= "test";
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] byteArray = md5.digest(s.getBytes("UTF-8"));
2、Base64方式:
import org.apache.commons.codec.binary.Base64;
String s="test";
Base64.decodeBase64(s.getBytes("UTF-8"));
byte[] encodeBytes = Base64.encodeBase64(s.getBytes("UTF-8"), true);
String encodeString = new String(encodeBytes).trim();
3、Des方式:
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.DESedeKeySpec;
import javax.crypto.spec.IvParameterSpec;
private static final String DEFAULT_ENCRYPT_MODE = "DES/ECB/PKCS5Padding";
private static final String DEFAULT_KEY_ALGORITHM = "DES";
private static final String DESEDE_KEY_ALGORITHM = "DESede";
public static byte[] DES(byte[] bytes, String algorithm, int iMode, byte[] key, byte[] iv) {
if (StringUtils.isEmpty(algorithm)) {
algorithm = DEFAULT_ENCRYPT_MODE;
}
if (iMode != Cipher.ENCRYPT_MODE && iMode != Cipher.DECRYPT_MODE) {
throw new IllegalArgumentException("iMode只能为1或2");
}
try {
DESKeySpec desKeySpec = new DESKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DEFAULT_KEY_ALGORITHM);
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
Cipher cipher = Cipher.getInstance(algorithm);
if (iv != null) {
IvParameterSpec ivps = new IvParameterSpec(iv);
cipher.init(iMode, secretKey, ivps);
} else {
cipher.init(iMode, secretKey);
}
return cipher.doFinal(bytes);
} catch (Exception ex) {
logger.error("", ex);
}
return null;
}
//加解密转换用DESede
public static byte[] DESede(byte[] bytes, String algorithm, int iMode, byte[] key, byte[] iv) {
if (StringUtils.isEmpty(algorithm)) {
algorithm = DEFAULT_ENCRYPT_MODE;
}
if (iMode != Cipher.ENCRYPT_MODE && iMode != Cipher.DECRYPT_MODE) {
throw new IllegalArgumentException("iMode只能为1或2");
}
try {
DESedeKeySpec desKeySpec = new DESedeKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DESEDE_KEY_ALGORITHM);
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
Cipher cipher = Cipher.getInstance(algorithm);
if (iv != null) {
IvParameterSpec ivps = new IvParameterSpec(iv);
cipher.init(iMode, secretKey, ivps);
} else {
cipher.init(iMode, secretKey);
}
return cipher.doFinal(bytes);
} catch (Exception ex) {
logger.error("", ex);
}
return null;
}
public static byte[] DESedeWithPKCS7Padding(byte[] bytes, String algorithm, int iMode,
byte[] key, byte[] iv) {
// DESede/ECB/PKCS5Padding
if (StringUtils.isEmpty(algorithm)) {
algorithm = DEFAULT_ENCRYPT_MODE;
}
if (iMode != Cipher.ENCRYPT_MODE && iMode != Cipher.DECRYPT_MODE) {
throw new IllegalArgumentException("iMode只能为1或2");
}
try {
DESedeKeySpec desKeySpec = new DESedeKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DESEDE_KEY_ALGORITHM);
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
Cipher cipher = Cipher.getInstance(algorithm, "BC");
if (iv != null) {
IvParameterSpec ivps = new IvParameterSpec(iv);
cipher.init(iMode, secretKey, ivps);
} else {
cipher.init(iMode, secretKey);
}
return cipher.doFinal(bytes);
} catch (Exception ex) {
ex.printStackTrace();
logger.error("", ex);
}
return null;
}
4、Hex与byte[]转换:
/**
* 将字节数组转换为16进制字符串表示
*
* @param bytes
* 待转换的字节数组
* @return 16进制表示的字符串
*/
public static String bytes2Hex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
String hex = null;
for (int i = 0; i < bytes.length; i++) {
hex = Integer.toHexString(bytes[i] & 0xFF);
if (hex.length() == 1) {
sb.append("0");
}
sb.append(hex);
}
return sb.toString();
}
/**
* 将16进制字符串转换为字节数组
*
* @param hexstr
* @return
*/
public static byte[] hex2Bytes(String hexstr) {
byte[] b = hexstr.getBytes();
int length = b.length;
if ((length % 2) != 0) {
throw new IllegalArgumentException("字符串对应字节数必须是偶数");
}
byte[] b2 = new byte[b.length / 2];
for (int n = 0; n < b.length; n += 2) {
String item = new String(b, n, 2);
b2[n / 2] = (byte) Integer.parseInt(item, 16);
}
return b2;
}
发表评论
-
【转】AspectJ 出现错误::0 can't find referenced pointcut 的解决之道
2015-11-05 13:55 957使用AspectJ注解开发AOP应用时,会遇到以下问题: ... -
【转】Unsupported major.minor version 51.0解决办法
2015-11-05 11:53 7837开发环境:eclipse + jdk1.7 编译用版本1. ... -
【转】关于log4j的日志文件保存位置解决方案
2015-09-21 16:26 1394以DailyRollingFileAppender 为例:假 ... -
【转】hibernate merge与update区别
2014-08-27 20:26 727今天做了个测试,写了个测试用例来看看merge与updat ... -
【转】tomcat简介之web.xml详解
2014-07-30 17:46 805一、Tomcat背景 自从JSP发布之后,推出了各式各样 ... -
【转】使用JsonConfig控制JSON lib序列化
2014-04-02 15:16 3685将对象转换成字符串,是非常常用的功能,尤其在WEB应用中, ... -
【转】slf4j+logback使用
2013-12-27 17:03 1116一 环境配置: XP+JDK1.5+Myeclipse6. ... -
【转】No Dialect mapping for JDBC type 错误分析
2013-10-14 16:49 876当在hibernate中运用原始的sql语句进行操作的的时 ... -
【转】No Hibernate Session bound to thread
2013-07-11 16:01 1818用springside3生成的项 ... -
【转】深入分析 Java 中的中文编码问题
2013-05-23 13:52 870几种常见的编码格式 ... -
【转】深入理解Java内存模型(七)——总结
2014-08-27 20:27 758处理器内存模型 顺序一致性内存模型是一个理论参考模型,J ... -
【转】深入理解Java内存模型(六)——final
2014-08-27 20:27 702与前面介绍的锁和volatile相比较,对final域的读 ... -
【转】深入理解Java内存模型(五)——锁
2014-08-27 20:27 744锁是java并发编程中最重要的同步机制。锁除了让临界区互斥 ... -
【转】深入理解Java内存模型(四)——volatile
2013-03-27 14:27 840当我们声明共享变量为volatile后,对这个变量的读/写将 ... -
【转】深入理解Java内存模型(三)——顺序一致性
2013-03-27 14:26 935当程序未正确同步时,就会存在数据竞争。java内存模型规范对 ... -
【转】深入理解Java内存模型(二)——重排序
2013-03-27 14:25 919数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一 ... -
【转】深入理解Java内存模型(一)——基础
2013-03-27 13:31 920并发编程模型的分类 在并发编程中,我们需要处理两个关键问题 ... -
【转】Java中File,byte[],Object间的转换
2013-03-09 17:56 10968一、有两点需要注意: 1、Object 对象必须是 ... -
【转】 Log4j写入数据库详解
2013-03-06 18:10 1211log4j是一个优秀的开 ... -
【转】ibatis like 用法,各数据库的安全拼接方法
2013-03-04 14:14 2185iBatis解决sql注入 (1) ibatis xml ...
相关推荐
本文将深入探讨三种常见的加密算法:3DES、MD5以及Base64,并介绍它们在实际应用中的工具和用途。 首先,我们来了解一下3DES(Triple DES,三重数据加密标准)。3DES是一种对称加密算法,它是DES(Data Encryption ...
Delphi加密算法集,包括了Delphi AES DES MD5 RSA BASE64 2DES 3DES Blowfish CRC32-Static SHA等 常用的加密算法用法实例,比较不错的Delphi加密实例代码了,浅显易懂而且实用的常见加密算法实例,包括字符串和文件...
在 Vue 中,常见的加密算法包括 MD5、DES、SHA256、BASE64、SHA1、RSA 等。BASE64 只是一种编码格式,并不是加密算法,但常用于在 HTTP 环境下传递较长的标识信息。 加密算法的选择需要根据实际情况进行选择,考虑...
标题中的“PB可用md5加密、des加解密,Base64编码DLL、附PB11.5调用例程”表明这是一个关于PowerBuilder(PB)应用的开发资源,其中包含使用MD5加密、DES(Data Encryption Standard)解密以及Base64编码的功能。...
本资料包涵盖了多个常见的加密算法,包括2DES、3DES、3DES3、AES、Base64、Blowfish、CRC、DES、MD5以及RSA和SHA系列。以下将对这些算法进行详细介绍。 1. **2DES(双密钥数据加密标准)**:基于DES(Data ...
### 常用MD5加密算法和3-DES加密算法Java实现 在现代软件开发过程中,数据的安全性变得越来越重要。对于数据传输和存储过程中的安全性保障,加密技术发挥着至关重要的作用。本文将详细介绍如何在Java环境中实现两种...
下面将详细阐述Base64、MD5、DES和AES这四种技术,并探讨它们的应用场景。 1. **Base64**:Base64是一种将二进制数据转换为可打印ASCII字符的编码方式,常用于在电子邮件系统中传输包含二进制的数据。Base64加密...
Java实现的Base64、MD5、3DES三种工具 本文档将对Java实现的Base64、MD5、3DES三种工具进行详细的知识点解析。 一、Base64加密工具 Base64是一种基于ASCII字符集的加密方法,它使用一个64字符的字符集来表示二...
总的来说,通过学习这个DES加密算法的Delphi源码,你不仅可以掌握DES加密算法的原理和实现,还能提升你在Delphi编程中的实践能力,进一步理解和运用面向对象编程的思想。这对于任何想要深入研究加密技术或者使用...
接下来,DES(Data Encryption Standard)是一种对称加密算法,用于保护敏感数据。它使用56位密钥对64位的数据块进行加密和解密。尽管DES现在被认为不够安全,因为它较短的密钥长度容易受到现代计算能力的攻击,但在...
这个压缩包包含了MD5、Base64、CRC32、DES、AES、Blowfish、RSA以及SHA等算法的详细使用案例,为开发者提供了丰富的参考资料。 1. **MD5(Message-Digest Algorithm 5)**:MD5是一种广泛使用的哈希函数,它将任意...
在这个主题中,我们将深入探讨三种常用的加密技术:AES(Advanced Encryption Standard)、MD5(Message-Digest Algorithm 5)以及Base64。 **AES加密** AES,即高级加密标准,是一种块密码,它以其高效和安全性而...
base64模块的base64编码、解码调用了binascii模块,binascii模块中的b2a_base64()函数用于base64编码,binascii模块中的a2b_base64()函数用于base64解码。 >>>import base64 >>> s = 'hello,word!' >>> base64.b64...
本文将详细介绍Java中常见的几种加密算法,包括AES加密、RSA加密、DES加密、MD5哈希加密、Base64编码以及异或(XOR)加密。理解并掌握这些算法对于开发安全的应用至关重要。 首先,AES(Advanced Encryption Standard...
java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...
本资源提供了在Android Studio项目中使用JNI实现RSA、DES、AES以及Base64和MD5的示例。 1. **RSA**: RSA是一种非对称加密算法,它基于两个密钥——公钥和私钥。公钥可以公开,用于加密数据;而私钥必须保密,用于...
在这个“Encrypt.rar”压缩包中,包含的是用C++语言实现的MD5、DES和Base64三种加密算法的源代码文件。接下来,我们将深入探讨这三个核心概念及其在C++中的实现。 1. **MD5(Message-Digest Algorithm 5)**: MD5...
在这个名为"Des_md5_base64.rar"的压缩包中,我们关注的是三种特定的加密方法:JavaScript实现的DES加密、Java实现的DES解密以及JavaScript的MD5加密。这些技术在网络安全、数据存储和通信等领域有广泛应用。 首先...
本主题主要涉及了基础编码技术如Base64,以及密码学中的哈希算法MD5,对称加密AES和DES,以及非对称加密RSA。 1. **Base64**:Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式。在iOS中,`Data`对象...
本文将深入探讨在VC(Visual C++)环境下实现的几个关键编码转换和校验技术:GBK转Unicode、Base64编码、DES加密、MD5哈希以及CRC校验。 首先,GBK是一种针对中文字符的编码标准,它兼容GB2312,包含了大量的汉字和...