- 浏览: 229144 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (188)
- Java (68)
- SQL (9)
- JavaScript (1)
- Spring (3)
- Struts (0)
- OS (4)
- Mywork (8)
- IT News (10)
- Passtime (15)
- English (11)
- SCJP (2)
- Linux (4)
- Maven (6)
- OpenSource (1)
- 持续集成CI (1)
- CVS (3)
- Hudson (3)
- OpenID (5)
- Web (8)
- Project Management (6)
- CRM (3)
- CaseStudy (2)
- SSO (1)
- OpenLDAP (4)
- Thinking (1)
- JGroup (1)
最新评论
-
guji528:
谢谢分享!
一些关于Emma的资料 -
atgoingguoat:
我也碰到这个问题
Linux 下具体如何处理.
java.net.UnknownHostException: ibatis.apache.org -
zerostar88:
http://www.limodev.cn/blog/arch ...
HTC G3 刷 Recovery and ROM -
zerostar88:
but DES now is deprecated, we u ...
DES/CBC/PKCS5Padding密码 -
xnxylxh:
辛苦了
数字证书
<Source>http://www.cnblogs.com/arix04/archive/2009/10/15/1511839.html
AES加解密算法,使用Base64做转码以及辅助加密:
package com.wintv.common; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /******************************************************************************* * AES加解密算法 * * @author arix04 * */ public class AES { // 加密 public static String Encrypt(String sSrc, String sKey) throws Exception { if (sKey == null) { System.out.print("Key为空null"); return null; } // 判断Key是否为16位 if (sKey.length() != 16) { System.out.print("Key长度不是16位"); return null; } byte[] raw = sKey.getBytes(); SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");//"算法/模式/补码方式" IvParameterSpec iv = new IvParameterSpec("0102030405060708".getBytes());//使用CBC模式,需要一个向量iv,可增加加密算法的强度 cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv); byte[] encrypted = cipher.doFinal(sSrc.getBytes()); return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。 } // 解密 public static String Decrypt(String sSrc, String sKey) throws Exception { try { // 判断Key是否正确 if (sKey == null) { System.out.print("Key为空null"); return null; } // 判断Key是否为16位 if (sKey.length() != 16) { System.out.print("Key长度不是16位"); return null; } byte[] raw = sKey.getBytes("ASCII"); SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); IvParameterSpec iv = new IvParameterSpec("0102030405060708" .getBytes()); cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv); byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密 try { byte[] original = cipher.doFinal(encrypted1); String originalString = new String(original); return originalString; } catch (Exception e) { System.out.println(e.toString()); return null; } } catch (Exception ex) { System.out.println(ex.toString()); return null; } } public static void main(String[] args) throws Exception { /* * 加密用的Key 可以用26个字母和数字组成,最好不要用保留字符,虽然不会错,至于怎么裁决,个人看情况而定 * 此处使用AES-128-CBC加密模式,key需要为16位。 */ String cKey = "1234567890123456"; // 需要加密的字串 String cSrc = "Email : arix04@xxx.com"; System.out.println(cSrc); // 加密 long lStart = System.currentTimeMillis(); String enString = AES.Encrypt(cSrc, cKey); System.out.println("加密后的字串是:" + enString); long lUseTime = System.currentTimeMillis() - lStart; System.out.println("加密耗时:" + lUseTime + "毫秒"); // 解密 lStart = System.currentTimeMillis(); String DeString = AES.Decrypt(enString, cKey); System.out.println("解密后的字串是:" + DeString); lUseTime = System.currentTimeMillis() - lStart; System.out.println("解密耗时:" + lUseTime + "毫秒"); } }
发表评论
-
Java 代码块加载顺序
2015-07-19 13:29 555静态代码块 > 构造代码块 > 构造方法 pu ... -
Sprint JPA Test
2015-02-14 13:45 819@RunWith(SpringJUnit4ClassRunn ... -
WARNING: JMockit was initialized on demand, which may cause certain tests to fai
2013-08-05 09:04 2280When we using Jmokit and Junit ... -
Common log4j Console output when unit testing
2013-08-02 10:23 707#set up stdout appenderlog4j.ap ... -
JGroups 广播检查
2013-01-08 09:52 874先下载JGroup jar包 设置到环境变量CLASSPAT ... -
(转)一步步优化JVM4:决定Java堆的大小以及内存占用
2012-09-22 10:45 884一步步优化JVM4:决定Java堆的大小以及内存占用 htt ... -
让开发自动化: 用 Eclipse 插件提高代码质量
2012-08-02 22:25 1061让开发自动化: 用 Eclipse ... -
从 Java 代码到 Java 堆 理解和优化您的应用程序的内存使用
2012-08-01 09:29 952从 Java 代码到 Java 堆 理解和优化您的应用程 ... -
Unable to read TLD from JAR file
2011-07-06 14:35 1330Today I try myBatis project Jpe ... -
Java Trouble shooting from IBM
2011-06-16 15:50 753Here is a good repository for J ... -
DES/CBC/PKCS5Padding密码
2011-05-10 10:06 3570DES/CBC/PKCS5Padding 加密解密 i ... -
Tomcat JNDI configuration
2010-10-18 14:15 1091Tomcat JNDI configuration ... -
(转)设计与开发 JAX-WS 2.0 Web 服务
2010-10-11 08:33 982https://www6.software.ibm.com/d ... -
初学者如何开发出高质量J2EE系统
2010-09-16 08:34 820(转自CSDN)初学者如何开发出高质量J2EE系统 S ... -
Jpetstore
2010-09-16 08:32 997http://www.hudong.com/wiki/Jpet ... -
Google SAML2 SSO
2010-09-09 16:40 1484Source: http://code.google.com/ ... -
(Forward)Debug your Java code with ease using JPDA
2010-09-07 13:02 951Debug your Java code with ease ... -
(Forward)程序员从初级到中级10个秘诀
2010-08-22 11:06 782http://sd.csdn.net/a/20100820/2 ... -
为什么5%的技术人员开发效率是其他95%的20倍?
2010-08-22 10:54 824Source: http://sd.csdn.net/a/20 ... -
2009 Java 专区最受欢迎内容
2010-08-18 14:02 7822009 Java 专区最受欢迎内容 http://www. ...
相关推荐
C#加密 解密对接java 的加密AES/CBC/PKCS7Padding 转16进制 C#加密解密中的详细整理
AES/CBC/PKCS5Padding,加密解决 支持javascript、java、iOS
JAVA解决AES ECB 模式下加密解密;附加国内三方AES加密网站---http://tool.chacuo.net/cryptaes;如有用解决您工作问题,烦请点个赞
本文使用开运库cryptopp,实现AES/CBC/PKCS5Padding/ 的加解密,希望能帮助到有需要的人
实现了AES/ECB/PKCS5Padding、AES/CBC/PKCS5Padding 密钥长度128/192/256bit,密钥0填充。是标准的AES算法,支持在线AES加解密网站互解。 本源码从CSDN一位前辈的源码基础上做了更改,增加支持加密返回BASE64,更加...
这是一个Android开发中的文本加密解密工具类,使用AES128对称加密算法,该资源是一个AndroidStudio3.1版本写的工程,其中包含一个工具类和一个调试活动界面,可解压后直接运行。这个是我为公司项目写的与服务器端...
公司有用C#写的AES代码 又有用JAVA AES CBC PKCS5Padding 加密的 但对于由JAVA AES CBC PKCS5Padding 加密的数据C++解密的资料极为稀缺 故本人找到了一些资源 同时改写了一些填充方式 使得与JAVA C#兼容 VS2010 测试...
主要介绍了Java实现AES/CBC/PKCS7Padding加解密的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
引入依赖 <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version> </dependency>
java AES加密解密,使用 CBC 解密模式,EncryptByAes Aes加密 后 base64 再加 DecryptByAes Aes 解密,对 PKCS7 填充的数据进行反填充,对数据进行 PKCS7 填充 使用 CBC 解密模式, // aesDecrypt 解密 public ...
由于业务需求需要对接java接口,对方接口采用AES/ECB/PKCS5Padding加密技术,还经过,16进制转换,php端采用openssl加解密方式。调试可以访问http://tool.chacuo.net/cryptaes
Java端AES/CBC/PKCS5Padding加解密代码,与Python端from cryptography.fernet import Fernet模块的加解密保持一致,两端加密后的数据互通,本代码仿照Fernet的加解密流程进行移植。
AES加解密,采用CBC模式 PKCS5填充模式 可提取C源码 用QT可直接编译使用
java、Android、javaScript(可以改成vue)、ios AES加密通用,可在服务端加密,客户端解密,也可在客户端加密,服务端解密;由于csdn会自动把积分改到50,可以发邮件到1622007541@qq.com 免费送
微信小程序解密 建议使用1.6及以上的环境 使用maven下载jar包 <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on --> <groupId>org.bouncycastle</groupId> <artifactId>...
AES/CBC/PKCS7Padding加密的实现一些情况下,客户端要与服务端通信会加密。常会要到加密算法AES(Advanced Encryption Standard),下面是Python和PHP的实现。Python需要安Crypto库(pip install pycrypto或访问)PHP...
本组代码采用标准AES算法(基础算法引用ElAES.pas,感谢作者),代码支持AES/ECB/PKCS5Padding、AES/CBC/PKCS5Padding 密钥长度128/192/256bit,密钥0填充,Delphi与JAVA互相加解密。加密前Delphi与JAVA统一字符编码...
uint16_t aes_encrypt(uint8_t *iv,uint8_t *Key,uint8_t *input,uint16_t length)/*加密时...uint16_t PKCS7Padding(uint8_t *p, uint16_t len)/*加密明文如果不是16byte整倍数,则根据PKCS7标准填充至16byte整倍数*/
原作地址https://download.csdn.net/download/yueyun889/10150481,解决了解密时如果选择了base64可能报错的问题
简介:采用密钥为16位长度的加密字符,算法为AES,CBC模式,PKCS5Padding填充模式。在Demo中使用了两个转换方法,二进制转为16进制,16进制转为2进制。 //加密解密的key String key = "1234567890"; //输入的内容 ...