公钥,私钥,SSH Keys,KeyStore,证书

公钥,私钥是一种非对称加密的方式,可以用在很多方面,并且实现的标准不统一。

一,用于远程登陆


例于GithubBitbucket,还有公司的服务器可以使用SSH Keys快捷登陆。


生成方式:
ssh-keygen -t rsa -C “email@email.com”

二,用于给Android上的APK签名(Keystore来签名,Keystore包含公私钥与证书)


使用Eclipse的时候,调试的时候会用到默认的Debug.Keystore.发布的时候会用到Release.Keystore.


生成方式:
keytool.exe -genkey -alias androiddebugkey -keyalg RSA -validity 60000 -keystore debug.keystore

三,用于在编译Android项目的时候,给平台及应用签名


编译的时候会用到四个Key,分别是testkey,platform,shared,media,Android的源码目录 build/target/product/security下面。


生成方式:

development/tools/make_key testkey ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

development/tools/make_key platform ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

development/tools/make_key shared ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

development/tools/make_key media ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’

之前一直有个误区,只需要一个公钥私钥对就可以行遍网络。不同的应用场景,使用公钥,私钥的方式也不一样,如在生成SSHkey的时候,只需要提供一个密码,但在生成Keystore的时候,就需要提供姓名,公司,位置等信息。

前三者之间也不是完全可以转换的,由三转二,有相应的方法,并且从Keystore中可以提取公钥与私钥。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.