import java.io.UnsupportedEncodingException;
import java.security.Key;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class AES {
private static byte[] iv = { 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x38, 0x37,
0x36, 0x35, 0x34, 0x33, 0x32, 0x31 };
static {
Security.addProvider(new BouncyCastleProvider());
}
/**
* 加密
* @param content 需要加密的内容
* @param password 加密密码
* @return
* @throws UnsupportedEncodingException
*/
public static byte[] encrypt(byte[] content, String password) throws Exception {
Key key = new SecretKeySpec(password.getBytes("utf-8"), "AES");
Cipher in = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");
in.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv));
byte[] enc = in.doFinal(content);
return enc;
}
/**
* 解密
* @param content 待解密内容
* @param password 解密密钥
* @return
* @throws UnsupportedEncodingException
*/
public static byte[] decrypt(byte[] content, String password) throws Exception {
Key key = new SecretKeySpec(password.getBytes("utf-8"), "AES");
Cipher out = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");
out.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv));
byte[] dec = out.doFinal(content);
return dec;
}
public static void main(String[] args) throws Exception{
String key = "11147169444463676897639210105259";
byte[] result =encrypt("加密字符串".getBytes("utf-8"),key);
System.out.println(new String(result,"utf-8"));
result = decrypt(result,key);
System.out.println(new String(result,"utf-8"));
}
}
分享到:
相关推荐
AES 资料 用Bouncy Castle实现AES-128-CBC加密解密 bcprov-jdk15-145.jar bcprov-jdk16-145.jar
C# 基于BouncyCastle.Crypto 1.8.10 实现国密算法,SM2,SM3,SM4(加签解签,加密解密)
只能设置5分,提取BouncyCastle的精华,所有文件只有13个,纯代码实现。去除了BouncyCastle库的调用。请下载的兄弟们希望给个5分。提取精华不易费时费力。
充气城堡 简单使用Bouncy Castle并实现以下加密算法: RSA加密/解密 RSA签名 DES加密/解密 AES加密/解密 ECC签名 SHA-256
基于C#简单的AES加解密 private void EncryptRB_CheckedChanged(object sender, EventArgs e) { if (EncryptRB.Checked == true) { C_groupBox.Enabled = false; P_groupBox.Enabled = true; //如果选择加密,...
引入依赖 <groupId>org.bouncycastle <artifactId>bcprov-jdk16 <version>1.46 </dependency>
java关于加密的算法demo代码(Base64...1.JDK实现 2.common codes实现 3.bouncy castle实现 三。消息摘要算法: 1.MD5 2.SHA 3.MAC 四。数字签名:JDK实现 1.RSA 2.DSA 3.ECDSA 五。对称加密算法: 1.3DES 2.AES 3.PBE
1)Bouncy Castle (BC): 用于实现椭圆曲线密码学(ECC)算法,确保系统安全传输密钥的过程。 2)Java Cryptography Architecture (JCA): 用于实现对称加密算法(如AES)和SHA-256哈希算法等,提供主流密码学算法的支持...
一般网上可以找到的Java加密解密都是使用SunJCE框架,还有一个比较著名的 Java开源加密工具是bouncycastle(http://www.bouncycastle.org/),因为SunJCE是JDK自带的,所以使用比较方便,相对于cryptopp,SunJCE要容易...
明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。...
介子DTLSDTLS的Go实现 Go编程语言中的本机实现。 长期目标是进行专业的安全检查,并将其包含在stdlib中。目标/进度这仅针对DTLS 1.2和最现代/通用的密码套件。 我们很乐意为“计划功能”下的内容做出贡献,并修复...
BouncyCastle (Maven 应该处理这个依赖) 执照 代码在新的 BSD 许可下获得许可。 有关更多详细信息,请参阅许可证文件。 贡献 如果您想通过将其扩展到 AES-256 或实施其他白盒 AES 方案来改进我的代码,请不要犹豫...
1.JDK实现 2.common codes实现 3.bouncy castle实现 三。消息摘要算法:com.timliu.security.message_digest 1.MD5 2.SHA 3.MAC 四。数字签名:JDK实现 com.timliu.security.signature 1.RSA 2.DSA 3.ECDSA 五。对称...
前后端配合使用AES/CBC/PKCS7Padding 实现加解密数据(crypto-js、bouncycastle-java)jar包
AES密码加密与解密,实现AES分组密码加密和解密。...说明:可以利用Java 加密包Bouncy Castle,C 语言的OpenSSL, Libgcrypt和LibTomCryp,微软.NET 程序的加密与解密等实现密码算法;也可以自己动手实现算法全过程。
引入commons-codec和bouncy-castle,主要是为了实现AES加密与Base64编码。注意:servlet-jar的scope是provide
该项目提供了作为JSP taglib到Sun的JCE(Java密码扩展)的接口。 它为您的JSP应用程序带来了强大的加密算法,例如AES和Blowfish。 它使用bouncycastle.org cleanroom JCE 1.2.1实现作为
可以攻玉109 4.1 加固你的系统109 4.2 加密组件Bouncy Castle 111 4.3 辅助工具Commons Codec 120 4.4 小结121 第二部分实践篇 第5章电子邮件传输算法—Base64 134 5.1 Base64算法的由来134 5.2 Base64算法的定义134...
可以攻玉1094.1 加固你的系统1094.2 加密组件Bouncy Castle 1114.3 辅助工具Commons Codec 1204.4 小结121第二部分实践篇第5章电子邮件传输算法—Base64 1345.1 Base64算法的由来1345.2 Base64算法的定义1345.3 Base...