zoukankan      html  css  js  c++  java
  • 60分钟搞定JAVA加解密

    从摩尔电码到小伙伴之间老师来了的暗号,加密信息无处不在.从军事到生活,加密信息的必要性也不言而喻.
    今天,我们就来看看java怎么对数据进行加解密
    分类
    a.古典密码 -- 受限制算法:算法的保密性给予保持算法的秘密,通常用于军事领域
    

    现代秘密 – 基于秘钥算法:算法的保密行基于对秘钥的保密(保证漏洞及时修正,以防算法发明者做过度操作)

    b.对称密码:加密秘钥和解密秘钥相同
        非对称密码:加密秘钥为公钥,解密秘钥为私钥
    
    c.散列函数:用于验证数据完整性  消息摘要算法 MD5   SHA 安全散列算法  MAC消息认证码算法
            长度不受限制
            哈希值容易计算
            散列运算过程不可逆(单向函数)
    
    d.分组密码:加密时将名为分成固定长度的组,用统一秘钥和算法对每一块加密,输出也是固定长度的密文。多用于网络加密
    
    e.流密码:序列密码 每次加载一个序列或一个字节
    

    数字签名:主要是针对以数字的形式存储的消息进行的处理

    OSI安全体系 – TCP/IP安全体系
    OSI安全体系
    这里写图片描述
    TCP/IP对应OSI安全体系

    Java安全组成
    JCA – Java Cryptography Architecture
    JCE – Java Cryptography Extension
    DES AES RSA
    JSSE – Java Secure Socket Extension
    SSL:网络传输 保证在网络传输数据不被获取
    JAAC – Java Authentication and Authentication service

    相关java包和类
    java.secutity :提供了对第三方包的扩展用法,只能用于实现消息摘要算法
    javax.crypto : 安全消息照耀,消息认证码
    java.net.ssl : 安全套接字(网络加解密)

    第三方扩展
    Bouncy Castle
    配置或者调用
    和表单验证第三方库名称冲突导致秘钥无效
    Commons Codec:Apache
    -Base64 二进制 十六进制 字符集编码
    -url编码、解码

    一般来说JDK是对加密算法的实现, Bouncy Castle做一些补充的操作, Commons Codec对JDK进行优化

    JAVA加解密案例源码地址:http://download.csdn.net/detail/jacxuan/9774737

  • 相关阅读:
    在Android工程中运行Java程序问题
    sklearn.neighbors.kneighbors_graph的简单属性介绍
    python中的“.T”操作
    numpy中关于*和dot的区别
    一个Window Service引发的感想
    项目管理之初步认识
    由敏捷开发中开发认领自己的工作内容的感想
    SQL Server2008 inner join多种方式的实践
    浅谈业务逻辑和技术哪个更重要
    敏捷人生之初步认识
  • 原文地址:https://www.cnblogs.com/qwop/p/6637289.html
Copyright © 2011-2022 走看看