zoukankan      html  css  js  c++  java
  • java-信息安全(三)-PBE加密算法

    概述

    1.1、基本概念:

      PBE算法(Password Based Encryption,基于口令加密),通过加Salt来增强安全性。对已有算法【AES、DES等】的包装

      其特点是使用口令代替了密钥,而口令由用户自己掌管,采用随机数杂凑多重加密等方法保证数据的安全性。

      PBE算法在加密过程中并不是直接使用口令来加密,而是加密的密钥由口令生成,这个功能由PBE算法中的KDF函数完成。KDF函数的实现过程为:将用户输入的口令首先通过“盐”(salt)的扰乱产生准密钥,再将准密钥经过散列函数多次迭代后生成最终加密密钥,密钥生成后,PBE算法再选用对称加密算法对数据进行加密,可以选择DES、3DES、RC5等对称加密算法.

      PBE算法结合了消息摘要算法和对称加密算法的优点

    1.2、算法支持

      

      

       

     jdk支持的

    list.add("PBEWITHHMACSHA1ANDAES_128");
    list.add("PBEWITHHMACSHA1ANDAES_256");
    list.add("PBEWITHHMACSHA224ANDAES_128");
    list.add("PBEWITHHMACSHA224ANDAES_256");
    list.add("PBEWITHHMACSHA256ANDAES_128");
    list.add("PBEWITHHMACSHA256ANDAES_256");
    list.add("PBEWITHHMACSHA384ANDAES_128");
    list.add("PBEWITHHMACSHA384ANDAES_256");
    list.add("PBEWITHHMACSHA512ANDAES_128");
    list.add("PBEWITHHMACSHA512ANDAES_256");
    list.add("PBEWITHMD5ANDDES");
    list.add("PBEWITHMD5ANDTRIPLEDES");
    list.add("PBEWITHSHA1ANDDESEDE");
    list.add("PBEWITHSHA1ANDRC2_128");
    list.add("PBEWITHSHA1ANDRC2_40");
    list.add("PBEWITHSHA1ANDRC4_128");
    list.add("PBEWITHSHA1ANDRC4_40");

    注意 AES 有向量改初始值

    bc支持的 

            list.add("PBEWithMD2AndDES");
            list.add("PBEWithMD5AndRC2");
            list.add("PBEWithSHA1AndDES");
            list.add("PBEWithSHA1AndRC2");
    
            list.add("PBEWithSHAAndIDEA-CBC");
            list.add("PBEWITHSHAAND3-KEYTRIPLEDES-CBC");
            list.add("PBEWithSHAAnd3KeyTripleDES");
            list.add("PBEWITHSHAAND2-KEYTRIPLEDES-CBC");
            list.add("PBEWithSHAAnd128BitRC2-CBC");
            list.add("PBEWithSHAAnd40BitRC2-CBC");
            list.add("PBEWithSHAAnd128BitRC4");
            list.add("PBEWithSHAAnd40BitRC4");
            list.add("PBEWithSHAAndTwofish-CBC");
            
            list.add("PBEWITHSHA1AND128BITAES-CBC-BC");
            list.add("PBEWITHSHA1AND192BITAES-CBC-BC");
            list.add("PBEWITHSHA1AND256BITAES-CBC-BC");
            list.add("PBEWITHSHA-1AND128BITAES-CBC-BC");
            list.add("PBEWITHSHA-1AND192BITAES-CBC-BC");
            list.add("PBEWITHSHA-1AND256BITAES-CBC-BC");
            list.add("PBEWITHSHA-256AND128BITAES-CBC-BC");
            list.add("PBEWITHSHA-256AND192BITAES-CBC-BC");
            list.add("PBEWITHSHA-256AND256BITAES-CBC-BC");
            list.add("PBEWITHSHA-256AND128BITAES-BC");
            list.add("PBEWITHSHA-256AND192BITAES-BC");
            list.add("PBEWITHSHA-256AND256BITAES-BC");
    View Code 

    1.3、应用场景

      

    1.4、示例代码

    代码地址:https://github.com/bjlhx15/algorithm-sign.git

     
  • 相关阅读:
    Silverlight 2学习笔记一:初识Silverlight
    全面解析布局(Grid & Canvas &StackPanel &Wrappanel) 转
    WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
    C# winform通过按钮上移下移 解决了datasource绑定问题
    经典.net面试题目
    RAID5配置及服务器2003系统安装方法。2000系统的安装要使用7.9版本的引导盘
    (线段树)hdoj1394-Minimum Inversion Number 逆序对
    (线段树)hdoj1754-I Hate It
    (线段树)hdoj1166-敌兵布阵
    Codeforces Round #393 (Div. 2) E题Nikita and stack(线段树)解题报告
  • 原文地址:https://www.cnblogs.com/bjlhx/p/6547806.html
Copyright © 2011-2022 走看看