Java实现Base64、DES、AES、RSA加解密以及加密方式之间的区别

本文介绍了Java中常见的四种加解密方法:Base64作为二进制与字符串转化的方式,不应用于安全加密;MD5是一种不安全的散列加密;对称加密算法如DES、AES,其中DES安全性较低,AES更为安全;非对称加密算法RSA使用公钥和私钥,适合敏感数据加密。文中还提供了Java实现这些加密方式的示例。

Base64 加密, 这个其实不可以算作加密方法,它可以看作是一种编码方式,它的用途只是二进制数字和字符串进行相互转化。

Base64是网络上最常见的用于传输 8Bit字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法。Base64一般用于在 HTTP协议下传输二进制数据,由于 HTTP协议是文本协议,所以在 HTTP协议下传输二进制数据需要将二进制数据转换为字符数据。然而直接转换是不行的。因为网络传输只能传输可打印字符。

MD5加密 散列函数计算,一种不安全的加密算法,通常用于账号密码的加密,但是一般都需要加盐处理,单纯的MD5的加密后的字符串可以被破解,或者通过字典查出。

java 实现base64加解密:

//Base64 加解密
        //编码加密
        String encodeStr = Base64.getEncoder().encodeToString(str.getBytes("UTF-8"));
        System.out.println("Base64加密后的字符串为:" + encodeStr);
        //解码解密
        String decoderStr = new String(Base64.getDecoder().decode(encodeStr), StandardCharsets.UTF_8); //
        // 推荐使用StandardCharsets类指定
        System.out.println("Base64解密后的字符串为" + decoderStr);

对称加密算法:DES、AES

DES算法加密的安全等级相对较低,通过同一个密钥进行加密解密。

Java实现DES加解密

 /**
     * 偏移变量,固定占8位字节
     */
    private final static String IV_PARAMETER = "12345678";
    /**
     * 密钥算法
     */
    private static final String ALGORITHM = "DES";
    /**
     * 加密/解密算法-工作模式-填充模式
     */
    private static final String CIPHER_ALGORITHM = "DES/CBC/PKCS5Padding";
    /**
     * 默认编码
     */
    private static final String CHARSET = "utf-8"; 
/**
     * 生成key
     *
     * @param password
     * @return
     * @throws Exception
     */
    private static Key generateKey(String password) throws Exception {
        DESKeySpec dks = new DESKeySpec(password.getBytes(CHARSET));
        SecretKeyFactory keyFactory = Secret
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值