目录:
证书制作工具:keytool
非对称加密和对称加密区别
非对称加密的思路
使用keytool制作证书
利用证书进行程序开发
证书的制作:http://www.cnblogs.com/xdp-gacl/p/3750965.html
这篇文章介绍的挺全,主要是使用keytool制作证书
keytool的概念:keytool是个密钥和证书管理工具,它使用户能够管理自己的公钥/私钥以及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性及认证服务
当证书制作完成后,我们需要再了解下常用的加密方式,也就是AES,SHA1,DES,RSA,MD5,通过这篇文章可以看看他们的区别:http://blog.csdn.net/hengshujiyi/article/details/45972533
因为证书主要使用的是非对称加密,那么就还需要了解下非对称加密和对称加密的区别,以及在进行非对称加密的一个思考流程的考虑.
非对称加密和对称加密的区别:对称加密分为密钥和公钥两种,其中,公钥是对外公开的,私钥则只有我们自己知道。而非对称加密呢,则是我们彼此相互定义一个共同的密码,然后通过这个密码进行数据的加密与解密。个人认为呢,非对称加密的安全性高于对称加密。但是效率可能会低于,或者是通过低于对称加密
拥有证书(公钥):当它们向我们发送数据的时候,它需要使用公钥对数据加密,然后将数据发送给我们,我们可以通过对发送过来的数据进行验证,然后通过私钥进行解密。
拥有私钥一方:也就是我们则可以对它们发送过来的数据进行验证,然后通过私钥将数据转换为可识别数据。进行我们自己的逻辑处理,当我们需要返回数据的时候,可以通过私钥进行签名,注意,是签名而不是加密,为什么这样说呢,可以看一下这篇知乎(https://www.zhihu.com/question/25912483)。然后将数据发给另一方,另一方则可以通过公钥进行对我们签名的验证,从而判断数据的来源。
有了以上的了解,接下来就可以开始编写代码了啊。
由于本人很菜,所以百度了一番,在开源中国找到了这篇文章(http://www.oschina.net/code/snippet_860036_38672)。
第一步,keytool制作证书:
1.keytool 命令,可以查看keytool常用命令
2.keytool -genkeypair -alias "test" -keyalg "RSA" -keystore "E:\zhengshu\test.keystore"
创建一个密钥对为test的非对称密钥,算法是RSA,存放的证书是在 E:\zhengshu\test.keystore 目录下。
参数说明:
-genkeypair:生成一对非对称密钥;
-alias:指定密钥对的别名,该别名是公开的;不可以指定路径,只是一个名字
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件。可以指定路径
注意:
1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等
2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填
查看密钥库里面的内容,会发现有一个test,证明我们创建成功了啊