美文网首页
AES对称密钥加密

AES对称密钥加密

作者: 账号已被注销 | 来源:发表于2019-07-05 22:45 被阅读0次

源码地址放在文章末尾


package Mr.He;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.Key;
import java.security.SecureRandom;
import java.util.Base64;

/**
 * AES加密演示
 * @author wishforyou.xia@gmail.com
 * @date 2019/7/3 23:24
 */
public class AesDemo {
    private static final String STRING = "missyou";

    public static void main(String[] args) throws Exception {
        Key key = createKey();
        String keyString = new String(Base64.getEncoder().encode(key.getEncoded()));
        System.out.println("密钥:" + keyString);

        String encodeString = encode(key);
        System.err.println("加密后的字符串为:" + encodeString);

        String decodeString = decode(key,encodeString);
        System.out.println("还原后的字符串为:" + decodeString);
    }

    private static Key createKey() throws Exception{
        KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
        keyGenerator.init(128,new SecureRandom("missyou".getBytes()));
        SecretKey secretKey = keyGenerator.generateKey();
        return secretKey;
    }

    private static String encode(Key key) throws Exception {
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE,key);
        byte[] dataByte = cipher.doFinal(STRING.getBytes());
        byte[] encodeByte = Base64.getEncoder().encode(dataByte);
        String data = new String(encodeByte);
        return data;
    }

    private static String decode(Key key, String string) throws Exception {
        byte[] decodeByte = Base64.getDecoder().decode(string.getBytes());
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.DECRYPT_MODE,key);
        byte[] dataByte = cipher.doFinal(decodeByte);
        String data = new String(dataByte);
        return data;
    }
}
/**
*  源码地址github
*/
https://github.com/HeQuanX/learning

相关文章

  • 2020-02-22密码学

    对称加密 —— AES DES 明文数据 ——》密钥 ——》密文 密文数据 ——》密钥 ——》明文 非对称加密 —...

  • iOS开发证书相关总结

    加密、解密 对称加密、非对称加密 对称加密:加密、解密使用相同的密钥;DES、AES(Mac、Windows的磁盘...

  • iOS 加、解密

    对称密钥加密 对称加密相对好理解,加密方和解密方使用的是同一个密钥。常见的对称密钥加密有AES、DES 等。 MD...

  • JAVA实现对称加密

    对称加密算法 加密密钥 = 解密密钥(完全对称的) 初等加密算法 DES3DES AES PBE IDEA 对称加...

  • 加密算法在 iOS 上的应用

    常用加密算法 对称加密算法:AES、DES 加密和解密使用同一密钥。 加密速度快 密钥管理困难,任意泄密 非对称加...

  • Java 常用加密算法(二)---对称加密(DES/3DES(T

    Java 常用加密算法(二)---对称加密(DES/3DES(TripleDES)/AES) 基于“对称密钥”的加...

  • 数据加密(一)——对称加密(AES为例)

    目录 数据加密概述 对称密钥加密概述 AES(Rijndael)概述 iOS中的AES(iOS SDK中的Secu...

  • Python加密解密-AES

    AES是对称加密,同一个密钥同时用来加密和解密. AES加密数据块分组长度必须为128比特,密钥长度可以是128比...

  • 4.加密函数编写

    加密算法分类: md5系列加密 ,哈希算法类型 aes加密对称加密,加密/解密是一个密钥 rsa加密 非对称加密,...

  • 011各种加密算法比较

    算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA 对称加密算法(加解密密钥相同...

网友评论

      本文标题:AES对称密钥加密

      本文链接:https://www.haomeiwen.com/subject/jqnyhctx.html