当前位置: 移动技术网 > IT编程>开发语言>Java > JAVA对称加密算法PBE定义与用法实例分析

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

2019年09月09日  | 移动技术网IT编程  | 我要评论

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

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

二 pbe算法优点

三 pbe介绍

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

四 常见算法

五代码实现

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

七 应用场景

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

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

md5在线加密工具:

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

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网