【Java安全技术探索之路系列:Java可扩展安全架构】之五:JCE(一):JCE架构介绍

【Java安全技术探索之路系列:Java可扩展安全架构】之五:JCE(一):JCE架构介绍作者:郭嘉邮箱:allenwells@163.com博客:http://blog.csdn.net/allenwellsgithub:https://github.com/AllenWellJCE最初是作为JCA的扩展包开发的,旨在提供受美国出口控制条例管制的加密服务API和实现。JCE提供一个提供者实现和一组相关的API和包,以支持加密和解密,密钥的生成和协商以及消息验证算法,其中对加

大家好,又见面了,我是你们的朋友全栈君。

作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell

【Java安全技术探索之路系列:Java可扩展安全架构】章节目录

【Java安全技术探索之路系列:Java可扩展安全架构】之一:Java可扩展安全架构开篇
【Java安全技术探索之路系列:Java可扩展安全架构】之二:JCA(一):JCA架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之三:JCA(二):JCA类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之四:JCA(三):JCA编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之五:JCE(一):JCE架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之六:JCE(二):JCE类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之七:JCE(三):JCE编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之八:JCP(一):JCP架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之九:JCP(二):JCP类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十:JCP(三):JCP编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十一:JSSE(一):JSSE架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十二:JSSE(二):JSSE类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十三:JSSE(三):JSSE编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十四:JAAS(一):JAAS架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十五:JAAS(二):JAAS类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十六:JAAS(三):JAAS编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之十七:JGSS(一):JGSS架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十八:JGSS(二):JGSS类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之十九:JGSS(三):JGSS编程模型
【Java安全技术探索之路系列:Java可扩展安全架构】之二十:SASL(一):SASL架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之二十一:SASL(二):SASL类和接口
【Java安全技术探索之路系列:Java可扩展安全架构】之二十二:SASL(三):SASL编程模型

JCE最初是作为JCA的扩展包开发的,旨在提供受美国出口控制条例管制的加密服务API和实现。JCE提供一个提供者实现和一组相关的API和包,以支持加密和解密,密钥的生成和协商以及消息验证算法,其中对加密和解密的支持包括对称加密、非对称加密、块加密和流加密。JCE还支持安全流和封装流对象。

JCE的架构模型如下图所示:

这里写图片描述

一 JCE加密服务提供者

JCE是基于JCA的架构原则设计的,因此它同样允许继承加密服务提供者,支持可插入的框架架构,允许插入合格的JCE提供者。

JCE架构提供了一个SunJCE的默认提供者实现,该实现提供以下加密服务和算法:

  • DES(FIPS PUB 46-1),3DES和Blowfish等加密算法的实现。
  • 支持以下模式:
    • 电子密码本(Electronic Code Book, ECB)
    • 密码块链接(Cipher Block Chaining,CBC)
    • 密码反馈(Cipher Feedback, CFB)
    • 输出反馈(Output Feedback, OFB)
    • 扩散密码块链接(Propagating Cipher Block Chaining, PCBC)
  • 可以实现MAC算法,如HMAC-MD5和HMAC-SHAT算法。
  • 用于算法DES, 3DES, Blowfish, HMAC-MD5和HMAC-SHA」的密钥生成器
  • 实现MD5-DESCBC基于密码加密(Password-Based Encryption, PBE)的算法
  • 实现基于Dffie-Helhnan的密钥协商协议
  • 按照PKCS#5实现填充规则(Padding Scheme)
  • Diffie-Hellman、DES, 3DES, Blowfish和PBE的算法参数管理器
  • 支持高级加密标准(AES)
  • 实现名为JCEKS的密钥库
  • 引人下列服务和算法作为J2SE 5.0安全增强:
    • 支持PKCS # 11标准
    • 支持ECC算法
    • 支持XML加密RSA-OAEP算法
    • 集成了Solaris加密框架(Solaris Cryptographic Framework)
    • 支持加密算法“PBEWithSHAIAndDESede”和“PBEWithSHAIAndRC2_40”
    • 支持RC2ParameterSpec
    • 增加了提供者SuuJCE对RSA加密的支持
    • 增加了提供者SunJCE对RC2和ARCFDUR加密的支持
    • 支持Hn13CSHA256, HmacSHA384和HmacSHA512

二 JCE加密服务引擎

三 JCE加密服务算法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150677.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下批量替换文件内容

    linux下批量替换文件内容1、网络上现成的资料  格式:sed-i"s/查找字段/替换字段/g"`grep查找字段-rl路径`  linuxsed批量替换多个文件中的字符串  sed-

    2022年7月26日
    3
  • copy.deepcopy()_python 内存管理

    copy.deepcopy()_python 内存管理参考文章http://iaman.actor/blog/2016/04/17/copy-in-python**首先直接上结论:—–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。—–而浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被…

    2022年10月3日
    0
  • plc梯形图讲解_plc编程入门梯形图

    plc梯形图讲解_plc编程入门梯形图导读:初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。有一点需要说明的是,本文虽以三菱PLC为例,但这些规则在其它PLC编程时也可同样遵守。OFweek工控网讯:初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,简单介绍一下PLC梯

    2022年9月10日
    0
  • C语言-函数-递归数列

    C语言-函数-递归数列题目:递归数列类别函数与递归程序类型:代码片段时间限制:2S内存限制10000Kb问题描述一个数列A定义如下A(1)=1,A(2)=1/(1+A(1)),A(3)=1/(1+A(2)),……A(n)=1/(1+A(n-1))。定义一个函数function用来计算数列的第第n项的值,函数声明如下:doublefunction(intn);输入说明:输入为1个…

    2022年9月11日
    0
  • 继续安利两个漫画App

    继续安利两个漫画App之前安利了很多漫画App~今天继续,以防被用o(>ω<)o玄猫漫画飒漫画回复“1051”下载玄猫漫画+飒漫画回复666给Yama买一块大白兔…

    2022年6月26日
    28
  • 关于component-scan中base-package包含通配符的问题探究

    关于component-scan中base-package包含通配符的问题探究今天在配置Spring的component-scan时,发现了一个有趣的问题。就是在指定base-package时,如果使用了星号通配符*,有时会出现类扫描不到的情况。下面研究一下这个问题。先介绍一下项目结构: 为了演示,我在java文件夹下创建名为controller的包,并在该包下创建了一个名为IndexController的类。如图所示: 先来看正常情况: 在Spring配置…

    2022年6月13日
    86

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号