AES加密

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package  com.test.util.encrypt;
 
import  org.apache.commons.lang3.StringUtils;
import  sun.misc.BASE64Decoder;
import  sun.misc.BASE64Encoder;
 
import  javax.crypto.Cipher;
import  javax.crypto.KeyGenerator;
import  javax.crypto.spec.SecretKeySpec;
import  java.math.BigInteger;
import  java.security.MessageDigest;
import  java.security.SecureRandom;
 
/**
  * 一些简单的编码测试
  * Created by miaorf on 2016/4/24.
  */
public  class  AESEncrypt {
     public  static  void  main(String[] args)  throws  Exception {
         String content =  "我爱你" ;
         System.out.println( "加密前:"  + content);
 
         String key =  "123456" ;
         System.out.println( "加密密钥和解密密钥:"  + key);
 
         String encrypt = aesEncrypt(content, key);
         System.out.println( "加密后:"  + encrypt);
 
         String decrypt = aesDecrypt(encrypt, key);
         System.out.println( "解密后:"  + decrypt);
     }
     
     /**
      * base 64 encode
      *
      * @param bytes 待编码的byte[]
      * @return 编码后的base 64 code
      */
     public  static  String base64Encode( byte [] bytes) {
         return  new  BASE64Encoder().encode(bytes);
     }
 
     /**
      * base 64 decode
      *
      * @param base64Code 待解码的base 64 code
      * @return 解码后的byte[]
      * @throws Exception
      */
     public  static  byte [] base64Decode(String base64Code)  throws  Exception {
         return  StringUtils.isEmpty(base64Code) ?  null  new  BASE64Decoder().decodeBuffer(base64Code);
     }
 
     /**
      * AES加密
      *
      * @param content    待加密的内容
      * @param encryptKey 加密密钥
      * @return 加密后的byte[]
      * @throws Exception
      */
     public  static  byte [] aesEncryptToBytes(String content, String encryptKey)  throws  Exception {
         KeyGenerator kgen = KeyGenerator.getInstance( "AES" );
         kgen.init( 128 new  SecureRandom(encryptKey.getBytes()));
 
         Cipher cipher = Cipher.getInstance( "AES" );
         cipher.init(Cipher.ENCRYPT_MODE,  new  SecretKeySpec(kgen.generateKey().getEncoded(),  "AES" ));
 
         return  cipher.doFinal(content.getBytes( "utf-8" ));
     }
 
     /**
      * AES加密为base 64 code
      *
      * @param content    待加密的内容
      * @param encryptKey 加密密钥
      * @return 加密后的base 64 code
      * @throws Exception
      */
     public  static  String aesEncrypt(String content, String encryptKey)  throws  Exception {
         return  base64Encode(aesEncryptToBytes(content, encryptKey));
     }
 
     /**
      * AES解密
      *
      * @param encryptBytes 待解密的byte[]
      * @param decryptKey   解密密钥
      * @return 解密后的String
      * @throws Exception
      */
     public  static  String aesDecryptByBytes( byte [] encryptBytes, String decryptKey)  throws  Exception {
         KeyGenerator kgen = KeyGenerator.getInstance( "AES" );
         kgen.init( 128 new  SecureRandom(decryptKey.getBytes()));
 
         Cipher cipher = Cipher.getInstance( "AES" );
         cipher.init(Cipher.DECRYPT_MODE,  new  SecretKeySpec(kgen.generateKey().getEncoded(),  "AES" ));
         byte [] decryptBytes = cipher.doFinal(encryptBytes);
 
         return  new  String(decryptBytes);
     }
 
     /**
      * 将base 64 code AES解密
      *
      * @param encryptStr 待解密的base 64 code
      * @param decryptKey 解密密钥
      * @return 解密后的string
      * @throws Exception
      */
     public  static  String aesDecrypt(String encryptStr, String decryptKey)  throws  Exception {
         return  StringUtils.isEmpty(encryptStr) ?  null  : aesDecryptByBytes(base64Decode(encryptStr), decryptKey);
     }
}

本文转自Ryan.Miao博客园博客,原文链接:http://www.cnblogs.com/woshimrf/p/5436770.html,如需转载请自行联系原作者


相关文章
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【9月更文挑战第9天】随着数字化时代的到来,信息安全问题日益凸显。本文将介绍如何使用Python结合AES与RSA两种加密算法,构建强大的加密工具。AES以其高效性和强安全性著称,适用于大量数据的快速加密;RSA作为非对称加密算法,在加密小量数据及实现数字签名方面表现卓越。通过整合两者,可以构建既安全又灵活的加密系统。首先,需要安装pycryptodome库。接着,实现AES加密与解密功能,最后利用RSA加密AES密钥,确保其安全传输。这种设计不仅提高了数据传输效率,还增强了密钥交换的安全性,为敏感数据提供坚实保护。
655 43
|
存储 安全 数据安全/隐私保护
浅谈对称加密(AES与DES)
浅谈对称加密(AES与DES)
665 1
|
算法 安全 数据安全/隐私保护
基于AES的遥感图像加密算法matlab仿真
本程序基于MATLAB 2022a实现,采用AES算法对遥感图像进行加密与解密。主要步骤包括:将彩色图像灰度化并重置大小为256×256像素,通过AES的字节替换、行移位、列混合及轮密钥加等操作完成加密,随后进行解密并验证图像质量(如PSNR值)。实验结果展示了原图、加密图和解密图,分析了图像直方图、相关性及熵的变化,确保加密安全性与解密后图像质量。该方法适用于保护遥感图像中的敏感信息,在军事、环境监测等领域具有重要应用价值。
594 35
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
808 8
|
数据安全/隐私保护
aes之ecb模式的加密解密
aes之ecb模式的加密解密
|
安全 算法 数据安全/隐私保护
深度揭秘!Python加密技术的背后,AES与RSA如何守护你的数据安全
【9月更文挑战第10天】随着数字化时代的到来,数据安全成为企业和个人面临的重大挑战。Python 作为功能强大的编程语言,在数据加密领域扮演着重要角色。AES 和 RSA 是两种主流加密算法,分别以对称和非对称加密方式保障数据安全。AES(Advanced Encryption Standard)因其高效性和安全性,在数据加密中广泛应用;而 RSA 则利用公钥和私钥机制,在密钥交换和数字签名方面表现卓越。
424 4
|
安全 数据安全/隐私保护 Python
情书也能加密?Python AES&RSA,让每一份数据都充满爱的密码
【9月更文挑战第8天】在这个数字化时代,情书不再局限于纸笔,也可能以电子形式在网络中传递。为了确保其安全,Python提供了AES和RSA等加密工具,为情书编织爱的密码。首先,通过安装pycryptodome库,我们可以利用AES对称加密算法高效保护数据;接着,使用RSA非对称加密算法加密AES密钥和IV,进一步增强安全性。即使情书被截获,没有正确密钥也无法解读内容。让我们用Python为爱情编织一张安全的网,守护每份珍贵情感。
337 2
|
存储 安全 数据库
双重防护,无懈可击!Python AES+RSA加密方案,构建最强数据安全堡垒
【9月更文挑战第11天】在数字时代,数据安全至关重要。AES与RSA加密技术相结合,构成了一道坚固防线。AES以其高效性保障数据加密,而RSA则确保密钥安全传输,二者相辅相成,提供双重保护。本文通过Python代码示例展示了这一加密方案的魅力,强调了其在实际应用中的重要性和安全性。使用HTTPS等安全协议传输加密密钥和密文,确保数据在数字世界中自由流通而无忧。
655 1
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
1188 0
|
安全 算法 数据安全/隐私保护
黑客克星!Python加密艺术大公开,AES、RSA双剑合璧,守护你的数字世界
在这个数据泛滥的时代,数字世界既充满了知识,也潜藏安全隐患。Python 作为强大的编程语言,以其独特的加密技术为我们的信息安全保驾护航。本文将介绍 AES 和 RSA 这两种加密算法,揭示它们如何协同工作,保护你的数字世界。AES(高级加密标准)以其高效、安全著称,能将敏感信息转化为难以破解的乱码。Python 的 `pycryptodome` 库让 AES 加密变得简单易行。然而,AES 面临密钥分发难题,此时 RSA(非对称加密算法)便大显身手,通过公钥加密、私钥解密的方式确保密钥传输安全。AES 与 RSA 在 Python 中交织成一道坚不可摧的防护网,共同守护我们的数字世界。
464 0