当前位置: 首页 > news >正文

住房和城乡建设部网站监理合同聊城市东昌府区建设路小学网站

住房和城乡建设部网站监理合同,聊城市东昌府区建设路小学网站,wordpress前端修改,wordpress落地页模板Java密码体系结构#xff08;JCA#xff09;是一个可扩展的框架#xff0c;使您能够使用执行加密操作。 JCA还促进实现独立性#xff08;程序不应该在乎谁提供加密服务#xff09;和实现互操作性#xff08;程序不应该与特定加密服务的特定提供者联系在一起#xff09;。… Java密码体系结构JCA是一个可扩展的框架使您能够使用执行加密操作。 JCA还促进实现独立性程序不应该在乎谁提供加密服务和实现互操作性程序不应该与特定加密服务的特定提供者联系在一起。 JCA允许将许多密码服务例如密码密钥生成器消息摘要捆绑到java.security.Provider类中并声明式地注册在特殊文件java.security中或者通过java.security.Security类以编程方式方法进行注册。 addProvider。 尽管JCA是标准但是不同的JDK实施JCA的方式有所不同。 在Sun / Oracle与IBM JDK之间IBM JDK比Oracle更“有序”。 例如IBM的超级提供程序com.ibm.crypto.provider.IBMJCE实现以下密钥库格式JCEKSPKCS12KSPKCS12JKS。 Oracle JDK将密钥库格式实现“传播”到以下提供程序中 sun.security.provider.Sun – JKS com.sun.crypto.provider.SunJCE – JCEKS com.sun.net.ssl.internal.ssl.Provider – PKCS12 尽管流行的建议是编写不指向特定Provider类的应用程序但是在某些用例中需要应用程序/程序确切了解Provider类提供的服务。 当支持可能与特定JDK例如与IBM JDK捆绑在一起的WebSphere紧密耦合的多个应用程序服务器时此要求变得更加普遍。 我通常使用Tomcat Oracle JDK进行开发更轻便更快但是我的测试/生产设置是WebSphere IBM JDK。 为了使事情更加复杂我的项目需要使用硬件安全模块HSM该模块通过提供程序类com.ncipher.provider.km.nCipherKM使用JCA API。 因此当我在家无法访问HSM时我想继续编写代码但至少要在JDK提供程序上对代码进行测试。 然后在将代码提交给源代码管理之前我可以切换为使用nCipherKM提供程序进行另一轮单元测试。 通常的假设是一个提供程序类就足够了例如对于IBM JDK来说是IBMJCE对于Oracle JDK是SunJCE。 因此通常的解决方案是实现一个指定一个提供程序的类并使用反射来避免由于“未找到类”而导致的编译错误 //For nShield HSM Class c Class.forName(com.ncipher.provider.km.nCipherKM); Provider provider (Provider)c.newInstance();//For Oracle JDK Class c Class.forName(com.sun.crypto.provider.SunJCE); Provider provider (Provider)c.newInstance();//For IBM JDK Class c Class.forName(com.ibm.crypto.provider.IBMJCE); Provider provider (Provider)c.newInstance(); 这种设计是可以的直到我在Oracle JDK上运行一些单元测试用例时遇到NoSuchAlgorithmException错误。 我使用的算法是RSA这是一种常见算法 怎么可能文档说支持RSA 相同的测试用例在IBM JDK上运行良好。 经过进一步调查我感到非常沮丧的是SunJCE提供程序没有用于RSA的KeyPairGenerator服务的实现。 但是可以在提供程序类sun.security.rsa.SunRsaSign中找到一个实现。 因此“ 1提供者全部提供”的假设被打破了。 但是由于有了JCA的开放API在请求Service实例时可以传递Provider对象例如 KeyGenerator kgen KeyGenerator.getInstance(AES, provider); 为了帮助检查各种Provider对象我提供了一个JUnit测试以漂亮地打印JDK中每个已注册Provider实例的各种服务。 package org.gizmo.jca;import java.security.Provider; import java.security.Provider.Service; import java.security.Security; import java.util.Comparator; import java.util.SortedSet; import java.util.TreeSet;import javax.crypto.KeyGenerator;import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.Test;public class CryptoTests {Testpublic void testBouncyCastleProvider() throws Exception {Provider p new BouncyCastleProvider();String info p.getInfo();System.out.println(p.getClass() - info);printServices(p);}Testpublic void testProviders() throws Exception {Provider[] providers Security.getProviders();for(Provider p : providers) {String info p.getInfo();System.out.println(p.getClass() - info);printServices(p);}}private void printServices(Provider p) {SortedSetservices new TreeSet(new ProviderServiceComparator());services.addAll(p.getServices());for(Service service : services) {String algo service.getAlgorithm();System.out.println( Service: service.getType() - algo);}}/*** This is to sort the various Services to make it easier on the eyes...*/private class ProviderServiceComparator implements Comparator{Overridepublic int compare(Service object1, Service object2) {String s1 object1.getType() object1.getAlgorithm();String s2 object2.getType() object2.getAlgorithm();;return s1.compareTo(s2);}} } 无论如何如果您使用的算法通用并且足够强大可以满足您的需求那么可以使用BouncyCastle提供程序。 它在所有JDK针对IBM和Oracle进行了测试上都能很好地工作。 BouncyCastle不支持JKS或JCEKS密钥库格式但是如果您不太挑剔则BC密钥库格式可以正常工作。 BouncyCastle也是开源的可以免费包含在您的应用程序中。 提示 JKS密钥库无法存储SecretKeys。 您可以尝试做功课 希望本文能启发您进一步探索JCA或者至少在与JCA合作时意识到“幸福的无知”的陷阱。 参考 YK研讨会的博客中 使用JCA的密码术-来自我们JCG合作伙伴 Allen Julia的“ 提供者中的服务” 。 翻译自: https://www.javacodegeeks.com/2013/03/cryptography-using-jca-services-in-providers.html
http://wiki.neutronadmin.com/news/378326/

相关文章:

  • 深圳做网站(龙华信科)网络营销管理
  • 手机网站模板网opencart做外贸网站怎样
  • 网站做推广团队wordpress上传不了图片
  • 昆明著名网站建设网站开发实验报告模版
  • wordpress 网站导航企业融资计划书范本
  • 深圳网站设计联系电话怎么注册个人工作室
  • 网站游戏制作开发网站建立要多少钱
  • 有没一些网站只做临床药学公众号怎么链接wordpress
  • ps制作网站首页江西南昌网站建设哪家好
  • 网站系统安全性网页编辑招聘
  • 动态图片素材网站百度公司地址在哪里
  • 凡科轻站小程序怎么样公司网址格式怎么写
  • h5网站的好处wordpress 网站标题图
  • 做网站 用什么做数据库最好企业网站导航代码
  • python 电商网站开发地推网推平台
  • 网站开发模板教务管理巴中网站建设有限公司
  • 自己做背景的网站苏州区网站建设
  • 淮安官方网站开发区深圳网站营销公司
  • 泉州网站排名优化企业网站的主要栏目
  • cc后缀网站菏泽网站建设哪好
  • 做网站云服务器选择多大带宽旅游景点网站建设
  • 哪个网站做外贸的多山东东营市东营区邮编
  • 内容营销概念北京网站优化wyhseo
  • 旅游网站开发的国内外现状广州越秀区天气预报15天查询
  • 怎么参考已有网站做新站网页软件有哪些
  • 茂名建站模板搭建精品网站建设费用 找磐石网络一流
  • 网站空间购买官方唯品会网站建设建议
  • 苏州网站定制公司哪家好海外社交网络推广
  • 哪个公司做网站便宜wordpress自己写界面
  • 网站开发的流程seo助手