安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Java,数字证书,证书签名和验签,格式转换,JKS格式与P

12月24日 多上心投稿
  概述
  数字证书
  互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。
  数字证书是由权威机构(CA机构),又称为证书授权(CertificateAuthority)中心发行的,人们可以在网上用它来识别对方的身份。
  数字证书的应用场景
  1、服务器证书,安装于服务器设备上,用来证明服务器的身份和进行通信加密,服务器证书可以用来防止欺诈钓鱼站点。
  2、客户端个人企业组织证书,用来身份认证和电子签名的,SSL双向登录,文档签名,代码签名,一些网页上的表单签名。
  数字证书相关参考内容:
  1、密钥库和证书格式:https:www。toutiao。coma6934192620839109127
  2、Nginx配置SSL证书:https:www。toutiao。coma7028371480148754956
  3、读取网站申请SSL证书,JKS、PFX、CRT格式:https:www。toutiao。coma7029183711942066695
  4、命令制作证书及代码生成证书:https:www。toutiao。comi7042515644935406118?groupid7042515644935406118证书签名
  pom。xmldependencygroupIdorg。bouncycastlegroupIdbcprovjdk15to18artifactIdversion1。70versiondependencydependencygroupIdorg。bouncycastlegroupIdbcpkixjdk15to18artifactIdversion1。70versiondependency
  签名和验签案例packagecom。what21。netty01。demo01。importcom。what21。netty01。demo01。cert2。KeyStoreUpublicclassCertSignUtilsDemo{publicstaticvoidmain(String〔〕args){读取证书KeyStoreUtils。KeyStoreEntrykeyStoreEntryKeyStoreUtils。readToKeyStoreEntry();证书签名使用证书私钥签名Stringtext被签名的内容;StringsignCtry{签名signContentCertSignUtils。sign(keyStoreEntry。getPrivateKey(),text);}catch(Exceptione){e。printStackTrace();}System。out。println(signContent);证书验签使用证书公钥验签booleanverifyStry{验签verifySignedCertSignUtils。verify(keyStoreEntry。getPublicKey(),text,signContent);}catch(Exceptione){e。printStackTrace();}System。out。println(verifySigned);}}packagecom。what21。netty01。demo01。importjava。security。PrivateKimportjava。security。PublicKimportjava。security。Simportjava。util。Base64;publicclassCertSignUtils{签名paramprivateKeyparamcontentreturnthrowsExceptionpublicstaticStringsign(PrivateKeyprivateKey,Stringcontent)throwsException{用私钥对信息生成数字签名SignaturesignatureSignature。getInstance(SHA384WithRSA);signature。initSign(privateKey);byte〔〕datacontent。getBytes(utf8);signature。update(data);byte〔〕signedDatasignature。sign();returnBase64。getEncoder()。encodeToString(signedData);}验证签名parampublicKeyparamcontentparamsignreturnthrowsExceptionpublicstaticbooleanverify(PublicKeypublicKey,Stringcontent,Stringsign)throwsException{SignaturesignatureSignature。getInstance(SHA384WithRSA);signature。initVerify(publicKey);byte〔〕datacontent。getBytes(utf8);signature。update(data);booleanresultsignature。verify(Base64。getDecoder()。decode(sign));}}
  JKS格式与PFX格式相互转换packagecom。what21。netty01。demo01。cert3;importjava。io。FileInputSimportjava。io。FileOutputSimportjava。security。Kimportjava。security。KeySimportjava。security。cert。Cimportjava。util。EpublicclassJKSConvertor{证书格式publicstaticfinalStringJKSJKS;publicstaticfinalStringPKCS12PKCS12;paramstorePathparamstorePasswdparampfxPaththrowsExceptionpublicstaticvoidtoPKCS12(StringstorePath,StringstorePasswd,StringpfxPath)throwsException{读取KeyStoreKeyStoreinputKeyStoreKeyStore。getInstance(JKS);FileInputStreaminputStreamnewFileInputStream(storePath);char〔〕nPasswordstorePasswd。toCharArray();inputKeyStore。load(inputStream,nPassword);inputStream。close();创建PKCS12KeyStoreoutputKeyStoreKeyStore。getInstance(PKCS12);outputKeyStore。load(null,storePasswd。toCharArray());EnumerationStringenumStrsinputKeyStore。aliases();while(enumStrs。hasMoreElements()){StringkeyAliasenumStrs。nextElement();if(inputKeyStore。isKeyEntry(keyAlias)){KeykeyinputKeyStore。getKey(keyAlias,nPassword);Certificate〔〕certChaininputKeyStore。getCertificateChain(keyAlias);outputKeyStore。setKeyEntry(keyAlias,key,storePasswd。toCharArray(),certChain);}}输出FileOutputStreamoutputStreamnewFileOutputStream(pfxPath);outputKeyStore。store(outputStream,nPassword);outputStream。close();}paramargsthrowsExceptionpublicstaticvoidmain(String〔〕args)throwsException{JKSConvertor。toPKCS12(D:localhostserver。jks,123456,D:localhostserver。pfx);JKSConvertor。toPKCS12(D:localhostclient1。jks,123456,D:localhostclient1。pfx);}}packagecom。what21。netty01。demo01。cert3;importjava。io。FileInputSimportjava。io。FileOutputSimportjava。security。Kimportjava。security。KeySimportjava。security。cert。Cimportjava。util。EpublicclassPKCS12Convertor{证书格式publicstaticfinalStringJKSJKS;publicstaticfinalStringPKCS12PKCS12;parampfxPathparamstorePasswdparamjksPaththrowsExceptionpublicstaticvoidtoJKS(StringpfxPath,StringstorePasswd,StringjksPath)throwsException{KeyStoreinputKeyStoreKeyStore。getInstance(PKCS12);加载证书FileInputStreaminputStreamnewFileInputStream(pfxPath);P12证书密码char〔〕nPasswordstorePasswd。toCharArray();inputKeyStore。load(inputStream,nPassword);inputStream。close();KeyStoreoutputKeyStoreKeyStore。getInstance(JKS);outputKeyStore。load(null,storePasswd。toCharArray());EnumerationStringenumStrsinputKeyStore。aliases();while(enumStrs。hasMoreElements()){StringkeyAliasenumStrs。nextElement();if(inputKeyStore。isKeyEntry(keyAlias)){KeykeyinputKeyStore。getKey(keyAlias,nPassword);Certificate〔〕certChaininputKeyStore。getCertificateChain(keyAlias);outputKeyStore。setKeyEntry(keyAlias,key,storePasswd。toCharArray(),certChain);}}FileOutputStreamoutputStreamnewFileOutputStream(jksPath);outputKeyStore。store(outputStream,nPassword);outputStream。close();}paramargsthrowsExceptionpublicstaticvoidmain(String〔〕args)throwsException{keytoollistkeystoreD:localhostserver。2。jkskeytoollistrfckeystoreD:localhostserver。2。jksstorepass123456PKCS12Convertor。toJKS(D:localhostserver。pfx,123456,D:localhostserver。2。jks);keytoollistkeystoreD:localhostclient1。2。jkskeytoollistrfckeystoreD:localhostclient1。2。jksstorepass123456PKCS12Convertor。toJKS(D:localhostclient1。pfx,123456,D:localhostclient1。2。jks);}}
投诉 评论 转载

iPhone12拍摄杜比视界高清视频,视频平台支持上传了iPhone12系列去年上市,是世界上第一款支持拍摄、后期剪辑和播放杜比视界视频的设备,苹果也笃定在未来杜比视界会火。而就在这两天,哔哩哔哩官方正式宣布启动杜比视界画质升……35所大学获批新增人工智能本科专业,工学学位四年制今日,教育部在官网正式发布公告,北京科技大学、上海交通大学等35所高校获批新增人工智能本科专业,授予工学学位,四年制。获批的除了南京大学、上海交通大学等教育部直属高校,哈尔滨工……我们用5G通讯时,会是什么样的体验?感谢您的阅读!我打一个最简单的比方。5月份我到北京出差,我的手机使用的是4G网络,朋友的手机使用的是5G网络,我们下载同一个APP,它只用了几秒钟的时间就下好,而我……红魔6SPro测评散热最好的骁龙888手机?在刚刚拿到红魔6SPro的时候,我就在想一个问题:市面上的旗舰机都已经把配置顶到头了,性能方面已经比较难拉出差距,除了具有辨识度的外观,游戏手机的价值到底在哪里呢?从红魔……争夺年轻人,纯电小车全面开花,替代燃油车胜算几何?在燃油车领域,小型车市场已经极度萎缩,但是在电动车领域却枝繁叶茂。纯电动车的启动是从高端市场开始的,毕竟有钱人才有试错(或者说尝鲜)的资本,市场还是偏小众量级不够,难言替代。……crm系统部署方式怎么选择?是选云端还是私有云部署?crm系统:部署方式怎么选择?是选云端还是私有云部署?私有云部署与云端部署云端部署和私有云部署解决方案之间最明显的区别在于信息和软件的保存位置。虽然内部软件部署涉及……特斯拉开了半年,发现10个小问题去年9月11日提modely,到现在已经有半年时间了,开了1万多公里。没遇到大的问题,也没遇到刹车失灵的情况,但是小问题确实不断。不修似乎也没事,就是挺讨厌。1,多处异响……Java,数字证书,证书签名和验签,格式转换,JKS格式与P概述数字证书互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证……华为Mate40EPro5G今日正式开卖搭载麒麟9000L,华为已经很久没有5G手机上市了,3月3日华为官方商城终于正式上架一款支持5G全网通的华为Mate40EPro5G新机,搭载麒麟9000L处理器,不过仅提供了8GB256GB一个……极限屏占比,华为MatePadPro2平板物料图曝光预计华为6月2日的全场景新品发布会中,除了有华为WATCH33Pro智能手表外,还有华为MatePadPro2平板。5月31日消息,华为MatePadPro2平板的宣传物料和包……发展电商对经济的贡献大还是发展实体店的对经济的贡献大?时间会证明,实体店对经济的贡献大,产业链可以提供更多的工作岗位,增加城市人员流动,让百业兴旺,城市更有烟火气。实体店的献大多了,首先解决就业,其次能感观物品的质量。电商的……Android12正式版有望在10月4日推出?Android12已经发布了多个预览版本,谷歌宣布正式版将在未来几周内到来。今日有消息表示Android12正式版有望一同在10月4日推出。对于关注这个信息的小伙伴来说。或许是……
小米12X火速跳水,骁龙87067W快充IMX766,小屏旗oppo概念机曝光,颜值太惊艳了为什么第三次人工智能浪潮需要可信AI?荣耀哭晕在厕所,高仿荣耀Magic3的国产百元机上市,只卖6焦点分析微信单聊能打开淘宝了,腾讯阿里互开了一道门缝俄媒美国试图粉碎的中国科技巨头正再次崛起iPhoneSE3要来了,外观设计大改,但可能要涨价了详解Python中的newinitcall三个特殊方法6400W像素66W超级快充加持,荣耀Play5凭借出色表现河北推进科技计划项目揭榜挂帅顶级语音识别专家DanielPovey新一代Kaldi可大幅联通UMAGIC优畅享2020Plus到底是不是华为手机?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利