密钥对,公钥,证书,私钥,jks,keystore,truststore,cer,pfx名词说明

转载 2011年12月28日 16:09:49

转载自:网络地点太多不确定源地址


密钥:
我理解是公钥+私钥的统称。


密钥对:
公钥(证书)和私钥成对存在。通信双方各持有自己的私钥和对方的公钥。自己的私钥需密切保护,而公钥是公开给对方的。在windows下,单独存在的公钥一般是后缀为.cer的文件

A用自己的私钥对数据加密,发给B,B用A提供的公钥解密。同理B用自己的私钥对数据加密,发送给A后,A用B的公钥解开。

公钥的两个用途:
1。验证对方身份:防止其他人假冒对方发送数据给你。
2。解密。
私钥的两个用途:
1。表明自己身份:除非第三方有你私钥,否则无法假冒你发送数据数据给对方。
2。加密。


jks(java key store):
java用的存储密钥的容器。可以同时容纳n个公钥或私钥,后缀一般是.jks或者.keystore或.truststore等,千奇百怪。不管什么后缀,它就是一个容器,各个公司或机构叫法不同而已。比如把只包含"受信任的公钥"的容器存成.truststore文件等。
用jdk\bin目录下的keytool.exe对其进行查看,导入,导出,删除,修改密码等各种操作。可以对jks容器加密码,输入正确才可以操作此容器中密钥。还有一个密码的概念与上者不同,是jks中存储着的私钥的密码,通常是绝密的。


pfx:
和jks功能相同但文件格式不同,pfx是浏览器用的。
可以用一些工具程序把pfx转化成jks格式供java程序使用(如银行只提供了pfx,但是我们想用httpclient模拟浏览器自动访问时)。据说IE导出的pfx格式不标准,转化jks时往往报错,可以尝试用Netscape Navigator导入再导出,然后再转化。碰到过这样的情况。

常见的几种https系统的访问。经https协议的数据经过加密传输,防止第三方监听,冒充和篡改。
1.不需要用户做任何操作,比如https://www.verisign.com/
这是因为此公钥是合法的(公钥是可信任的机构颁发,和实际域名吻合,而且没有到期)。用IE访问时空白处点右键可以查看公钥信息。
2.https的页面会弹出公钥确认提示
公钥不合法(不是可信任的机构颁发,和实际域名不吻合,已到期),但用户点“是”即表示忽略危险,继续访问。
3.需要往浏览器倒入一个文件才可访问的
一般是银行在线交易等特别需要安全的场合,站方(银行)需要验证访客身份(如要确认必须是已注册的网银商户),需要在浏览器中导入含有访客私钥的pfx文件。


生成jks:
在银行没有提供jks文件的情况下对帐,需要自己生成jks
对于1,2类https网站,如果java程序访问此地址时在jre默认的信任库中找不到对方证书的颁发机构,则会抛出安全方面的异常。所以要将站方公钥存进一个jks,并在环境变量中设定,表明信任此库中的公钥,才可以正常访问。
我是用现成的make_jks的工具类在程序中读取https://xxxx地址,程序自动抓取出银行公钥并存进一个jks文件。
在浏览器中查看站方公钥时,把公钥导出(一般是cer后缀),然后用keytool.exe手工将此cer导入一个jks或许也可以?没试过。
以上1,2类https网站,仅仅是用到了公钥的“验证对方身份”功能。对于第3种https网站,也可以找到现成的程序把pfx直接转成jks。既然动用了pfx,一般是把公钥的两个用途和私钥的两个用途都用起来。

jks与keystore的区别

jks是在studio里面生成的签名证书, keystore是eclipse里面生成的.
  • lengyue1084
  • lengyue1084
  • 2017年08月30日 10:00
  • 3994

keyStore 和.jks的签名的区别

很多做安卓的朋友,打包的时候,有时候遇到的是keystore 有时候看到的是。jks。这两个都是打包的生成的签名,可能会笔试很了解!他们到底有什么区别? 如果突然有人问你这个问题,可能临时还答不上来,...
  • wolfking0608
  • wolfking0608
  • 2017年12月24日 22:55
  • 627

微信注册崩溃?appid签名无法注册or如何查看签名是否一致?如何注册appid?jks和keystore的区别?

跑通微信,这一篇就够了。       一.出现微信注册register(APP_ID)崩溃?或appid无法注册到微信?      解决办法:      1.首先用清理软件彻底清理一下微信缓存吧,可能...
  • Android_tools
  • Android_tools
  • 2017年12月06日 14:37
  • 461

从keystore(jks)文件中提取私钥

JKS文件是使用keytool生成的keystore文件,存放私钥和证书。但是我们用keytool的时候,私钥并没有单独生成出来。这个不利于我们后期的一些扩展工作。所以,我们需要把私钥从keytool...
  • MaoTongBin
  • MaoTongBin
  • 2016年04月05日 14:08
  • 18691

android studio jks和eclipse keystore

一、Android Studio签名打包 第一步 创建签名文件 第二步 填写签名参数 第三步 选择构建类型 第四步 查看生成第a...
  • cui130
  • cui130
  • 2016年07月06日 18:09
  • 4498

不同格式证书导入keystore方法|Java Keystore类型

简介 Java自带的keytool工具是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还...
  • down177
  • down177
  • 2015年01月21日 19:37
  • 1667

as上签名文件在Android Studio中的.jks文件代替在eclipse时.keystore

生成jks签名文件 选择Build > Generate Signed APK… 选择项目app > Next 选择Create new… 选择签名文件的路径,这些信...
  • f917386389
  • f917386389
  • 2016年02月18日 15:19
  • 5677

查看apk信息,keystore或者jks信息

1、查看 keystore $ keytool -list -v -keystore debug.keystore$ keytool -list -v -keystore debug.keysto...
  • kongxingxing
  • kongxingxing
  • 2016年11月05日 10:35
  • 1889

jks与pkcs12格式的keystore互转

标准keystore(standard jdk keystore types)包括:JCEKS,JKS,PKCS12这几种格式,主要区别就是jceks可是用来存储对称密钥(分组密钥、私密密钥),而jk...
  • kgn28
  • kgn28
  • 2009年04月22日 00:46
  • 8376

android JKS,keystore 以及密钥对生成与读取方法

从一个小插曲引入jks和keystore对比,之前不大注意在使用IDE( android studio 或者 Eclipse)进行签名apk,选项中keyALis有区别的。针对 .jks 和.keys...
  • o279642707
  • o279642707
  • 2017年09月06日 16:58
  • 522
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:密钥对,公钥,证书,私钥,jks,keystore,truststore,cer,pfx名词说明
举报原因:
原因补充:

(最多只允许输入30个字)