• java加解密


    换工作中,把以前学的知识,整理整理。能否得到一份好的薪资且满意的工作,然后赢取白富美,走向人生的巅峰,就靠它了。哈哈。

    对称加密:DES, AES

    DES (数据加密算法) : 明文按64位进行分组,秘钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

    AES (高级加密算法) :区块长度固定为128 比特,密钥长度则可以是128,192或256比特。

    非对称加密:RSA,ECC,D-H

    ECC (椭圆加密算法) : 比RSA更高效。

    D-H (Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm)) : Oakley算法优化。

    哈希 (摘要算法):MD系列,SHA系列

    MD5 : 16字节(128位)的校验值,一般用32位十六进制数表示。校验数据完整性。

    SHA (安全哈希算法):由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。

    对称加密原理:

    对称加密体制分为两种:

      1、一种是对明文的单个位(或字节)进行运算,称为流密码,也称为序列密码;

      2、一种是把明文信息划分为不同的组(或块)结构,分别对每个组(或块)进行加密、解密,称为分组密码。

    工作模式

    以DES算法的工作模式为例,DES算法根据其加密算法所定义的明文分组的大小(56位),将数据分割成若干56位的加密区块,再以加密区块为单位,分别进行加密处理。如果最后剩下不足一个区块的大小,称之为短块。短块的处理方法有填充法、流密码加密法、密文挪用技术。

    不同模式的特点和用途:

    ECB 模式适用于对字符加密, 例如, 密钥加密。

    OFB 模式常用于卫星通信中的加密。

    由于对 CBC 和CFB 模式当改变一个明文分组xi则yi 与其后所有密文分组都会受到影响, 这一性质说明这两种模式都可用于认证系统。更明确的说, 这些模式能被用来产生一个消息认证码, 即MAC。它能使消息接收方相信给定的明文序列的确来自合法发送者,而没有被篡改。这再次说明技术的两面性。

    使用规则:ECB模式简单、高速,但最弱,易受重发和替换攻击,一般不采用。CBC,CFC,OFB模式的选用取决于实际的特殊需求。

     

    填充方法

    Java中对称加密对于短块的处理,一般是采用填充方式。

    常采用的是:NoPadding(不填充)、Zeros填充(0填充)、PKCS5Padding填充。

    ZerosPadding

    方式:全部填充为0的字节

    结果如下:

    F1 F2 F3 F4 F5 F6 F7 F8 //第一块

    F9 00 00 00 00 00 00 00 //第二块

    PKCS5Padding

    方式:每个填充的字节都记录了填充的总字节数

    结果如下:

    F1 F2 F3 F4 F5 F6 F7 F8 //第一块

    F9 07 07 07 07 07 07 07 //第二块

  • 相关阅读:
    OCP-052考试题库汇总(29)-CUUG内部解答版
    OCP-052考试题库汇总(28)-CUUG内部解答版
    OCP-052考试题库汇总(27)-CUUG内部解答版
    OCP-052考试题库汇总(26)-CUUG内部解答版
    OCP-052考试题库汇总(25)-CUUG内部解答版
    OCP-052考试题库汇总(24)-CUUG内部解答版
    007 线程的join方法
    006 线程休眠
    005 线程打断---完成线程的终结
    004 守护线程
  • 原文地址:https://www.cnblogs.com/chen--biao/p/5700322.html
Copyright © 2020-2023  润新知