【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python提示AttributeError: ‘NoneType’ object has no attribute ‘append’

    python提示AttributeError: ‘NoneType’ object has no attribute ‘append’在写python脚本时遇到AttributeError:’NoneType’objecthasnoattribute’append’a=[]b=[1,2,3,4]a=a.append(b)执行一次后发现a的类型变为了NoneType。下次执行时就会出现如题所示的错误。把a=a.append(b)改为a.append(b)后问题解决。原因:append

    2025年6月5日
    3
  • makefile 指定文件的生成目录[通俗易懂]

    makefile 指定文件的生成目录[通俗易懂]1.上一篇博客虽然简单实现了自动处理依赖关系,但是生成的各种临时文件都混在一起,太乱了。假定我们的源文件放在src目录,头文件放在inc目录,.o文件放在obj目录,.d文件放在dmk目录,Makefile和上述4个目录为同一级别。则定义如下变量:D_SRC=srcD_INC=-I./incD_OBJ=objD_MK=dmk2.自动遍历src目录下的所有.c

    2022年5月21日
    47
  • Android百度地图获取开发版SHA1值和发布版SHA1值

    Android百度地图获取开发版SHA1值和发布版SHA1值开发版SHA1获取:首先找到C:\Users****.android文件夹,在.android文件下打开当前文件夹的控制台,输入keytool-v-list-keystoredebug.keystore即可,遇到输入口令,一般默认为android,如图:发布版SHA1获取:首先创建该项目,并打开AndroidStudio选中Build->GenerateS…

    2022年8月10日
    7
  • 详解Nacos和Eureka的区别「建议收藏」

    详解Nacos和Eureka的区别「建议收藏」1.Eureka是什么Eureka是SpringCloud微服务框架默认的也是推荐的服务注册中心,由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用于实现AWS云的中服务定位,以实现中间层服务器的负载均衡和故障转移,2018年7月份……………………………

    2022年8月21日
    13
  • VBA编程_常用函数总结1[通俗易懂]

    VBA编程_常用函数总结1[通俗易懂]文章目录IsEmptyReplaceAscMidRoundIsEmpty  用于判断单元格是否为空:SubMain()ActiveSheet.Cells(7,3).Value=1IfIsEmpty(ActiveSheet.Cells(7,3))ThenDebug.Print”IsEmpty”ElseDebug.Print”NotEmpty”EndIfEndSubReplace  函数原型如下

    2022年5月22日
    38
  • Dubbo + Hystrix 实现服务熔断「建议收藏」

    Dubbo + Hystrix 实现服务熔断「建议收藏」熔断器简介在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过RPC相互调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。为了解决这个问题,业界提出了熔断器模型。Netflix

    2022年8月30日
    3

发表回复

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

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