日期:2014-05-19  浏览次数:20657 次

有谁对Java或者C的 数字签名 cer证书 密钥 加密算法 这些技术熟悉和了解的,能否简单介绍一下!
    经常听到上面的名词术语,说来惭愧,对于我这样一个做过几年Java开发的人来说,因为行业限制,对于上面的技术还是一知半解,现在想重新补习学习一下上面的技术,请知道的朋友简单说说上面的区别和联系,最好介绍几本这方面的权威书籍,谢谢! 
------最佳解决方案--------------------
这个嘛,简单说也说不清楚,搜下原理看下就知道了。
其实就是一种非对称加密算法,有一对密钥,公钥和私钥,公钥加密的只有私钥能解,私钥加密的用公钥解。
服务器保留私钥,给客户端颁发证书(上面说的cer就是),他包含一个公钥已经颁发机构,采用的加密算法等等信息,只要服务器私钥不泄露,对客户端来说就能确定是不是要请求的服务器。
java里面keytool工具可以生成证书库。具体怎么用网上很多。
------其他解决方案--------------------
公钥是给访问网站的人用的,用户访问这个网站,拿到公钥,然后用公钥加密生成的对称密钥,发送到服务器后,服务器用私钥解密就得到对称密钥,然后双方就可以用这个对称密钥来加密通信了。
------其他解决方案--------------------
谢谢yellow0323, 在非对称加密算法下,服务器为什么要保留私钥而不是保留公钥 ?
------其他解决方案--------------------
谢谢两位的回答!
------其他解决方案--------------------
还有一点疑问,既然服务器端保留私钥,应该说只有一个私钥了,那么不同客户端拿到的公钥是相同的还是不同的? 不同客户端公钥加密之后生成的对称密钥是相同的还是不同的 ?