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

     
  • 相关阅读:
    JS算法练习一
    jquery抖动的按钮
    CSS3教程:box-sizing属性的理解border、padding与容器宽度的关系
    鼠标hover事件
    object 插入元素,插入HTML页面
    点击展开点击收起
    IE支持CSS3圆角
    登录事件,鼠标点击输入框隐藏默认值事件
    复制 动态文本按钮
    凯撒密码、GDP格式化输出、99乘法表
  • 原文地址:https://www.cnblogs.com/bjlhx/p/6547806.html
Copyright © 2011-2022 走看看