- 浏览: 41037 次
- 性别:
- 来自: 深圳
最新评论
-
ivan19861025:
步入低谷的浪神 写道大神,能不能把你的包截图看看,都不知道哪个 ...
drools 学习之旅 <一> -
步入低谷的浪神:
大神,能不能把你的包截图看看,都不知道哪个文件是放在哪个包里面 ...
drools 学习之旅 <一> -
ivan19861025:
ivan19861025 写道Saro 写道提醒一下,Simp ...
Java并发编程-生成唯一序列号 -
ivan19861025:
Saro 写道提醒一下,SimpleDateFormat不是线 ...
Java并发编程-生成唯一序列号 -
ivan19861025:
dieslrae 写道你就没考虑过集群环境?集群有什么问题呢? ...
Java并发编程-生成唯一序列号
AES
HmacMD5
MD5
RSA
package com.sf.core.sgs.utils; import java.security.Key; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Hex; public class AESCoder { public static final String ALGORITHM = "AES"; public static final String CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding"; public static byte[] initKey(){ try { KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGORITHM); keyGenerator.init(128); return keyGenerator.generateKey().getEncoded(); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e.getMessage(), e); } } private static Key toKey(byte[] key){ return new SecretKeySpec(key, ALGORITHM); } public static String encrypt(String data, String k) throws Exception { Key key = toKey(Hex.decodeHex(k.toCharArray())); Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); //初始化, 设置为加密模式 cipher.init(Cipher.ENCRYPT_MODE, key); byte[] enBytes = cipher.doFinal(data.getBytes()); return String.valueOf(Hex.encodeHex(enBytes)); } public static String decrypt(String data, String k) throws Exception{ Key key = toKey(Hex.decodeHex(k.toCharArray())); Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); //初始化, 设置为解密模式 cipher.init(Cipher.DECRYPT_MODE, key); byte[] bytes = cipher.doFinal(Hex.decodeHex(data.toCharArray())); return new String(bytes); } public static void main(String[] args) throws Exception{ String inputStr = "123456"; byte[] k = AESCoder.initKey(); String keyStr = String.valueOf(Hex.encodeHex(k)); System.out.println("密钥: " + keyStr); String en = AESCoder.encrypt(inputStr, keyStr); System.out.println("密文: " + en); //解密 String de = AESCoder.decrypt(en, keyStr); System.out.println("解密后明文: " + new String(de)); } }
HmacMD5
public class MACEncoder { public static final String ALGORITHM = "HmacMD5"; public static byte[] initHmacMD5Key() throws Exception{ KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGORITHM); SecretKey secretKey = keyGenerator.generateKey(); return secretKey.getEncoded(); } public static byte[] encodeHmacMD5(byte[] data, byte[] key) throws Exception{ SecretKey secretKey = new SecretKeySpec(key, ALGORITHM); Mac mac = Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); return mac.doFinal(data); } public static void main(String[] args) throws Exception{ String id = "13141283947192347174"; String key = "11"; long t1 = System.currentTimeMillis(); System.out.println(encodeHmacMD5(id, key)); System.out.println(encodeHmacMD5(id, key)); System.out.println(encodeHmacMD5(id, key)); System.out.println(encodeHmacMD5(id, key)); System.out.println(System.currentTimeMillis() - t1); //System.out.println(Hex.encodeHex(initHmacMD5Key())); } public static String encodeHmacMD5(String data, String key) throws Exception{ SecretKey secretKey = new SecretKeySpec(Hex.decodeHex(key.toCharArray()), "HmacMD5"); Mac mac = Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); return String.valueOf(Hex.encodeHex(mac.doFinal(data.getBytes()))); } }
MD5
public class MD5Encoder2 { public static void main(String[] args) { String str = "12345"; try { MessageDigest digest = MessageDigest.getInstance("MD5"); byte[] bytes = digest.digest(str.getBytes()); System.out.println(Hex.encodeHex(bytes)); } catch (Exception e) { e.printStackTrace(); } } }
RSA
public class RSAEncoder { public static final String ALGORITHM = "rsa"; public static final String PUBLIC_KEY = "RSAPublicKey"; public static final String PRIVATE_KEY = "RSAPrivateKey"; public static final int KEY_SIZE = 512; /** * 私钥解密 * @param data * @param key * @return * @throws Exception */ public static byte[] decryptByPrivateKey(byte[] data, byte[] key) throws Exception{ PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(data); } /** * 公钥加密 * @param data * @param key * @return * @throws Exception */ public static byte[] encryptByPublicKey(byte[] data, byte[] key) throws Exception{ X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(data); } /** * 公钥加密 * @param data * @param key * @return * @throws Exception */ public static byte[] encryptByPublicKey(byte[] data, PublicKey publicKey) throws Exception { KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(data); } /** * 公钥解密 * @param data * @param key * @return * @throws Exception */ public static byte[] decryptByPublicKey(byte[] data, byte[] key) throws Exception{ X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.DECRYPT_MODE, publicKey); return cipher.doFinal(data); } /** * 私钥加密 * @param data * @param key * @return * @throws Exception */ public static byte[] encryptByPrivateKey(byte[] data, byte[] key) throws Exception{ PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); cipher.init(Cipher.ENCRYPT_MODE, privateKey); return cipher.doFinal(data); } /** * 初始化密钥 * @return * @throws Exception */ public static KeyPair initKey() throws Exception{ KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(ALGORITHM); KeyPair keyPair = keyPairGenerator.generateKeyPair(); return keyPair; } public static void main(String[] args) throws Exception{ KeyPair keyPair = initKey();//密钥对 String data = "明文数据12345"; System.out.println("私钥: " + String.valueOf(Hex.encodeHex(keyPair.getPrivate().getEncoded()))); System.out.println("公钥: " + String.valueOf(Hex.encodeHex(keyPair.getPublic().getEncoded()))); byte[] byte1 = encryptByPublicKey(data.getBytes(), keyPair.getPublic().getEncoded()); System.out.println("公钥加密后: " + String.valueOf(Hex.encodeHex(byte1))); byte[] byte2 = decryptByPrivateKey(byte1, keyPair.getPrivate().getEncoded()); System.out.println("私钥解密后: " + new String(byte2)); byte[] byte3 = encryptByPrivateKey(data.getBytes(), keyPair.getPrivate().getEncoded()); System.out.println("私钥加密后: " + String.valueOf(Hex.encodeHex(byte3))); byte[] byte4 = decryptByPublicKey(byte3, keyPair.getPublic().getEncoded()); System.out.println("公钥解密后: " + new String(byte4)); } }
发表评论
-
EXCEL导入导出
2016-11-04 10:48 0<div class="iteye-blog- ... -
我的简历
2016-06-19 23:22 0我的简历 -
JAVA并发编程-多线程(2) 优雅退出JVM
2016-02-23 22:42 1479这里我不知道如何解释优雅一词 先看如下代码: publi ... -
JAVA并发编程-多线程(1)
2016-02-23 22:17 505在JAVA中线程分为用户线程和守护线程. 用户线程会阻止 J ... -
Java并发编程-生成唯一序列号
2016-02-03 11:27 22127所用到的并发编程库 import java.util.c ... -
待研究
2015-09-08 10:51 01. cassandra 弱事务 是什么概念 2. el ... -
drools 学习之旅 <一>
2015-09-06 18:26 1529先说一下我们的场景: 假如我们现在要给网站举办活动( ... -
Elasticsearch 学习之旅 <二> 插件安装
2015-09-02 15:15 1238插件安装分为两种方式 这里以安装 elasticse ... -
Elasticsearch 学习之旅 <一> 初体验
2015-09-02 14:31 11661. 安装 Elasticsearch 安装非常简单, ... -
google
2014-12-26 17:18 0https://wen.lu/webhp -
zookeeper
2014-12-09 18:40 0zookeeper -
diamond
2014-09-19 14:32 0diamond -
dubbo-admin
2014-09-18 17:41 0dubbo-admin -
shiro-example
2014-09-18 10:51 0shiro-example -
um1
2014-08-05 18:10 0um111111 -
jtest
2014-07-07 10:01 0aaaaa -
java web sso 实现
2014-03-07 11:34 1090见sso-server readme.txt -
java调用groovy脚本
2014-02-28 16:07 849import groovy.lang.GroovyClas ... -
JSON 工具类,操作JSON类型数据
2014-02-28 15:46 773public static JSONObject parse ... -
利用spring3 El 编写自已的 表达式工具类
2014-02-28 15:42 1211public class ExpressionUtils ...
相关推荐
Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。
SM4国密加密解密JAVA代码实现
加密、解密过程,需要传递四个变量。 加密的四个变量依次为:明文,代码1,代码2,代码3 解密的四个变量依次为:密文,代码1,代码2,代码3
一段java语言加密和解密的代码
java实现MD5加密解密算法,java源代码~
该java文件中的方法主要实现AES加密、解密的功能
主要介绍了java实现的RC4加密解密算法,结合具体实例形式分析了java RC4加密解密算法的实现与使用技巧,需要的朋友可以参考下
楼上兄弟太黑,特意找的源码,2分处理,完美解决Java加密解密zip文件
文件名:FileEncrypter.java JDK:1.40以上 说明:文件加密 加密方法:三重DES加密 加密过程:对选中的文件加密后在同文件夹下生成一个增加了".tdes"扩展名的加密文件 (完美加密,更改后缀名也不可以打开)解密过程:...
JAVA 加密 解密 源代码 含截图 JAVA 加密 解密 源代码 含截图
因为是参照 js Base64写的java实现,所以代码可实现前台js,后台java的加密,解密的任意组合,当然也可自己简单改下参照序列顺序,使自己的加密解密变为独一的,网上无法使用工具解密出正确的数据。熟悉二进制的可...
前端使用jsencrypt加密后端使用java RSA解密功能实现源码
java代码-使用java解决DES加密解密的源代码 ——学习参考资料:仅用于个人学习使用!
在工作中会经常遇到密码加密,URL传参要进行加密,在此我参照一个例子将用java实现的AES加解密程序用实例写出。JS实现AES-GCM加密,java实现AES-GCM解密
Java 公钥和私钥加密解密源码,写了注释可以直接运行,测试没有问题
国产加密算法SM2加密解密java代码完整示例。里面有加密解密的示例,生成秘钥的示例,本人亲测有效。默认maven环境编译。若无maven环境,里面也上传了相关依赖jar包。
RC4加密算法的Java实现代码 简单清楚,不需要复杂的调试
java aes128/256 对称加密解密,rsa对称加密解密验签实现,php java通用aes加密 支持任何形式的aes加密,文件,字符,字节等,内含php代码,可以与php平台实现aes加密,而且包含rsa非对称加密签名验签实现,都是对...
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,...