- 浏览: 702322 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (362)
- java基础 (33)
- html/css+div/javascript (17)
- Ajax/XML/JSON/XSL (7)
- JQuery (11)
- Extjs (1)
- JSP/Servlet (19)
- MVC模式 (4)
- struts 1 (17)
- Struts 2.3.4 (17)
- Spring 3.2 (26)
- Springmvc (3)
- Hibernate 4.1 (21)
- ibatis (6)
- Velocity模板语言 (2)
- Rose框架 (5)
- EJB (1)
- JUnit测试 (2)
- 数据库DB (24)
- 重构 / 设计模式 (3)
- 开发工具IDE (37)
- 数据结构与算法设计 (3)
- Android (12)
- Linux (4)
- bug集合 (29)
- 缓存技术(redis) (3)
- Lucene全文索引 (15)
- maven3.0.5 (4)
- 小工具集合 (18)
- 面试题 (5)
- 闲聊 (11)
- 其他 (4)
- 接口API (2)
- work (2)
- Flex (0)
- JMS (1)
- 开源项目集合 (1)
- 技术博客 (1)
- 分类04 (0)
- 分类05555 (0)
最新评论
-
小小小羊:
好屌...
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Refle -
liubinli2005:
这个可以脱底spring。单独使用吗?
DAO层:jade -
cangbaotu:
我觉得对于开发者来说,能脚本化编写爬虫是一件挺开心的事情( ̄▽ ...
网页爬取 -
asjava:
很好的文章, 但每段代码清单都重复了一次.
spring 事务 -
xia635317478:
jethypc 写道验证码的session无法传过去啊 还是我 ...
登陆验证码(struts2实现)
java.security.NoSuchAlgorithmException: AES KeyGenerator not available
1.需要将那个扩展jar包(bcprov-ext-jdk16-146.jar)下载地址:http://www.bouncycastle.org/latest_releases.html
2.import org.apache.commons.codec.binary.Base64要下载下面包:
http://commons.apache.org/codec/download_codec.cgi
参考:http://blog.csdn.net/kongqz/article/details/6287270
http://blog.csdn.net/kongqz/article/details/6287270
1.需要将那个扩展jar包(bcprov-ext-jdk16-146.jar)下载地址:http://www.bouncycastle.org/latest_releases.html
2.import org.apache.commons.codec.binary.Base64要下载下面包:
http://commons.apache.org/codec/download_codec.cgi
package com.org.momo.数据库字段加解密; import java.security.Key; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import org.bouncycastle.jce.provider.BouncyCastleProvider; /** * IDEA对称加密算法,java6不支持这个算法的实现,bouncycastle支持IDEA对称加密算法 * 这是一款对称分组密码。是目前比较常用的电子邮件加密算法之一 * 我们可以参照这个算法的实现来完成其他算法的实现:Rijndael,Serpent,Twofish等 * @author kongqz * */ public class IDEACoder { /** * 密钥算法 * */ public static final String KEY_ALGORITHM="IDEA"; /** * 加密/解密算法/工作模式/填充方式 * */ public static final String CIPHER_ALGORITHM="IDEA/ECB/ISO10126Padding"; /** * * 生成密钥,只有bouncycastle支持 * @return byte[] 二进制密钥 * */ public static byte[] initkey() throws Exception{ //加入bouncyCastle支持 Security.addProvider(new BouncyCastleProvider()); //实例化密钥生成器 KeyGenerator kg=KeyGenerator.getInstance(KEY_ALGORITHM); //初始化密钥生成器,IDEA要求密钥长度为128位 kg.init(128); //生成密钥 SecretKey secretKey=kg.generateKey(); //获取二进制密钥编码形式 return secretKey.getEncoded(); } /** * 转换密钥 * @param key 二进制密钥 * @return Key 密钥 * */ public static Key toKey(byte[] key) throws Exception{ //实例化DES密钥 //生成密钥 SecretKey secretKey=new SecretKeySpec(key,KEY_ALGORITHM); return secretKey; } /** * 加密数据 * @param data 待加密数据 * @param key 密钥 * @return byte[] 加密后的数据 * */ public static byte[] encrypt(byte[] data,byte[] key) throws Exception{ //加入bouncyCastle支持 Security.addProvider(new BouncyCastleProvider()); //还原密钥 Key k=toKey(key); //实例化 Cipher cipher=Cipher.getInstance(CIPHER_ALGORITHM); //初始化,设置为加密模式 cipher.init(Cipher.ENCRYPT_MODE, k); //执行操作 return cipher.doFinal(data); } /** * 解密数据 * @param data 待解密数据 * @param key 密钥 * @return byte[] 解密后的数据 * */ public static byte[] decrypt(byte[] data,byte[] key) throws Exception{ //加入bouncyCastle支持 Security.addProvider(new BouncyCastleProvider()); //还原密钥 Key k =toKey(key); Cipher cipher=Cipher.getInstance(CIPHER_ALGORITHM); //初始化,设置为解密模式 cipher.init(Cipher.DECRYPT_MODE, k); //执行操作 return cipher.doFinal(data); } /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String str="IDEA"; System.out.println("原文:"+str); //初始化密钥 byte[] key=IDEACoder.initkey(); System.out.println("密钥:"+Base64.encodeBase64String(key)); //加密数据 byte[] data=IDEACoder.encrypt(str.getBytes(), key); System.out.println("加密后:"+Base64.encodeBase64String(data)); //解密数据 data=IDEACoder.decrypt(data, key); System.out.println("解密后:"+new String(data)); } } //控制台输出结果: //原文:IDEA //密钥:TIM+ksMQUeUe6LHHBGntag== //加密后:rRHc34j86i4= //解密后:IDEA
参考:http://blog.csdn.net/kongqz/article/details/6287270
http://blog.csdn.net/kongqz/article/details/6287270
发表评论
-
Tomcat:IOException while loading persisted sessions: java.io.EOFException
2013-11-14 17:39 874Tomcat:IOException while loadin ... -
'sessionFactory' or 'hibernateTemplate' is required
2013-08-18 21:35 828'sessionFactory' or 'hibernateT ... -
column: id (should be mapped with insert="false" update="false")
2013-08-18 16:59 2042Spring集成Hibernate:column: id (s ... -
Unsupported major.minor version 51.0
2013-08-17 10:01 1051Unsupported major.minor version ... -
SVN无法提交-RA layer request failed
2013-08-05 09:12 1261SVN无法提交-RA layer request failed ... -
类是ThreadPoolExecutor:时不时的就会在workerDone(this);
2013-07-05 00:17 2670类是ThreadPoolExecutor:时不时的就会在wo ... -
Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds
2013-03-21 15:34 1979一、bug:Server Tomcat v6.0 Server ... -
java.lang.UnsupportedClassVersionError: Bad version number in .class file
2013-03-19 10:33 955bug: java.lang.UnsupportedClas ... -
找不到包:javax.servlet.annotation.WebServlet
2013-03-18 16:54 14838找不到包:javax.servlet.annotation.W ... -
异常:Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntit
2013-03-08 23:47 3404异常:Unable to instantiate defau ... -
java.sql.SQLException: Can't call commit when autocommit=true
2013-01-29 11:00 5686当我在数据库更新, ... -
java.util.MissingResourceException: Can't find bundle for base name systemConfig
2013-01-28 10:19 23571bug:java.util.MissingResourceEx ... -
Cannot find message resources under key org.apache.struts.action.MESSAGE
2013-01-15 14:53 1072异常1: Cannot find message resour ... -
org.springframework.dao.InvalidDataAccessApiUsageException: OracleLobCreator
2013-01-11 15:35 1767org.springframework.dao.Invalid ... -
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity
2013-01-11 15:10 8328引用org.springframework.orm.hiber ... -
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema n
2013-01-10 11:06 2721Configuration problem: Unable t ... -
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Refle
2013-01-10 10:57 10321java.lang.NoClassDefFoundError ... -
java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
2013-01-10 10:53 1019java.lang.NoClassDefFoundError: ... -
java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
2013-01-10 10:50 1001整合SSH的时报错误: java.lang.NoClassDe ... -
WARN No appenders could be found for logger的解决方法
2013-01-09 15:57 1713引用log4j:WARN No appenders could ...
相关推荐
java.security.NoSuchAlgorithmException: SHA1PRNG SecureRandom not available at sun.security.jca.GetInstance.getInstance(GetInstance.java:142) at java.security.SecureRandom.getInstance(SecureRandom....
Exception in thread "main" java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/ECB/PKCS7Padding https://www.codeprj.com/blog/92cdc41.html
Struts2是一个流行的Java Web应用程序框架,它继承和发展了Struts1.x的一些特性,同时又采用了WebWork框架的核心技术,使得Struts2在设计理念和技术实现上都有了显著的进步。 #### Struts2与WebWork的关系 Struts2...
public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String ...
程序报错:Caused by: java.security.NoSuchAlgorithmException: PBKDF2WithHmacSHA256 SecretKeyFactory not available 就是缺少这个包
2. 创建MessageDigest实例:使用`java.security.MessageDigest.getInstance("SHA1")`获取SHA1实例。 3. 更新数据:调用`digest.update()`方法添加要签名的数据。 4. 生成哈希值:通过`digest.digest()`方法获取哈希...
aes java源码这很棒- // // IntelliJ IDEA从.class文件重新创建的源代码//(由...导入java.security.NoSuchAlgorithmException; 导入java.security.PrivilegedAction; 导入java.security.PrivilegedActionException
<%@ page import="java.security.MessageDigest,java.security.NoSuchAlgorithmException" %> String str = "你的明文字符串"; try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] hashBytes ...
import java.security.NoSuchAlgorithmException; public class MD5Example { public static String encrypt(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] ...
import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; public class RSAKeys { public static void main(String[] args) throws ...
- `java.security.NoSuchAlgorithmException`:当请求特定算法名称的Provider时找不到实现该算法的Provider会抛出此异常。 - `java.io.UnsupportedEncodingException`:当请求的字符编码集不可用时抛出此异常。 ###...
import java.security.NoSuchAlgorithmException; public String encryptToMD5(String info) { try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(info.getBytes()); byte[] digestBytes ...
import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; // 保存密钥到文件 public void saveKeys(PublicKey publicKey, PrivateKey privateKey, String publicKeyPath, String ...
在这个实现中,我们使用了 JAVA 的加密 API,即 java.security 包中的 Cipher 类和 KeyGenerator 类。 Cipher 类用于加密和解密数据,而 KeyGenerator 类用于生成加密密钥。 在 encrypt 方法中,我们首先使用 ...
首先,我们需要导入`java.security.MessageDigest`和`java.security.NoSuchAlgorithmException`库,以处理MD5加密。 ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;...
在Java环境中,我们通常会借助第三方库如BouncyCastle来创建和处理这种格式的证书。本文将深入探讨如何使用BouncyCastle库在Java中创建PKCS12格式的数字签名证书。 首先,理解BouncyCastle库。BouncyCastle是一个...
import java.security.NoSuchAlgorithmException; public class MD5Example { public static String encrypt(String data) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] hashBytes = ...
import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.security.cert.X509...
- 在Java环境中,你需要安装Java Cryptography Extension (JCE),因为默认情况下,Java只支持128位的加密算法,而APNs需要256位。 2. **连接到APNs** - 使用Java的Socket编程,建立到APNs服务器的TCP连接。生产...