欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA对称加密算法PBE定义与用法实例分析

程序员文章站 2022-04-16 19:17:21
本文实例讲述了java对称加密算法pbe定义与用法。分享给大家供大家参考,具体如下: 一 aes、des和3des在使用上比较一致 二 pbe算法优点 三 p...

本文实例讲述了java对称加密算法pbe定义与用法。分享给大家供大家参考,具体如下:

一 aes、des和3des在使用上比较一致

JAVA对称加密算法PBE定义与用法实例分析

二 pbe算法优点

JAVA对称加密算法PBE定义与用法实例分析

三 pbe介绍

1、pbe:password based encryption 基于口令加密。通过加salt来增强安全性。
2、对已有算法的包装
3、jdk和bc的实现
4、通过加salt来增强安全性

四 常见算法

JAVA对称加密算法PBE定义与用法实例分析JAVA对称加密算法PBE定义与用法实例分析JAVA对称加密算法PBE定义与用法实例分析

五代码实现

package com.imooc.security.pbe;
import java.security.key;
import java.security.securerandom;
import javax.crypto.cipher;
import javax.crypto.secretkeyfactory;
import javax.crypto.spec.pbekeyspec;
import javax.crypto.spec.pbeparameterspec;
import org.apache.commons.codec.binary.base64;
public class imoocpbe {
    private static string src = "cakin24 security pbe";
    public static void main(string[] args) {
        jdkpbe();
    }
    public static void jdkpbe() {
        try {
            //初始化盐
            securerandom random = new securerandom();
            byte[] salt = random.generateseed(8);
            //口令与密钥
            string password = "cakin24";
            pbekeyspec pbekeyspec = new pbekeyspec(password.tochararray());
            secretkeyfactory factory = secretkeyfactory.getinstance("pbewithmd5anddes");
            key key = factory.generatesecret(pbekeyspec);
            //加密
            pbeparameterspec pbeparameterspec = new pbeparameterspec(salt, 100);
            cipher cipher = cipher.getinstance("pbewithmd5anddes");
            cipher.init(cipher.encrypt_mode, key, pbeparameterspec);
            byte[] result = cipher.dofinal(src.getbytes());
            system.out.println("jdk pbe encrypt : " + base64.encodebase64string(result));
            //解密
            cipher.init(cipher.decrypt_mode, key, pbeparameterspec);
            result = cipher.dofinal(result);
            system.out.println("jdk pbe decrypt : " + new string(result));
        } catch (exception e) {
            e.printstacktrace();
        }
    }
}

六 实现效果

jdk pbe encrypt : ukxiqwmtrnbpj1aytggwmpswslplel5x
jdk pbe decrypt : cakin24 security pbe

七 应用场景

JAVA对称加密算法PBE定义与用法实例分析

ps:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含aes、des、rc4等):

md5在线加密工具:
http://tools.jb51.net/password/createmd5password

在线散列/哈希算法加密工具:

在线md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:

在线sha1/sha224/sha256/sha384/sha512加密工具: