怎么在ios进行rsa公钥加密,java做rsa私钥解密

Python062

怎么在ios进行rsa公钥加密,java做rsa私钥解密,第1张

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA")keyGen.initialize(1024)KeyPair key = keyGen.generateKeyPair()Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding")//把第二个参数改为 key.getPrivate()cipher.init(Cipher.ENCRYPT_MODE, key.getPublic())byte[] cipherText = cipher.doFinal("Message".getBytes("UTF8"))System.out.println(new String(cipherText, "UTF8"))//把第二个参数改为key.getPublic()cipher.init(Cipher.DECRYPT_MODE, key.getPrivate())byte[] newPlainText = cipher.doFinal(cipherText)System.out.println(new String(newPlainText, "UTF8"))正常的用公钥加密私钥解密就是这个过程,如果按私钥加密公钥解密,只要按备注改2个参数就可以。但是我要提醒楼主,你要公钥解密,公钥是公开的,相当于任何人都查到公钥可以解密。你是想做签名是吧。

该命令生成一个模长 2048 位,名字为 rsa_private_key.pem 、 PKCS1 格式的 RSA 私钥文件.

genrsa :指定生成算法使用 RSA

-out :后面参数是生成的私钥的文件名

2048 :生成私钥的模长,单位字节(bits)

根据生成的私钥 rsa_private_key.pem 文件,生成公钥 rsa_public_key.pem 文件

生成名字为 rsa_pkcs8_private_key.pem 的私钥文件

Java Android 用到的密钥:

公钥: rsa_public_key.pem

私钥: rsa_pkcs8_private_key.pem

终端会提示输入国家、省市、所在地、组织、组织单位、常用名称、邮箱地址等信息,按要求填写(可以随便填写), 输入完对应信息后会提示输入一个密码 :

最终会生成 rsacert.csr 文件

用最开始生成的私钥 rsa_private_key.pem 和 rsacert.csr 证书请求文件生成一个数字证书 rsacert.crt

使用 x509 工具自建CA。由于 x509 无法建立证书请求文件,所以只能使用 openssl req 来生成请求文件,然后使用 x509 来自签署, 也可以用来签署他人的证书请求,即为他人颁发证书。

知识点 :

终端会提示设置密码,该密码是 .p12 私钥的密码(用 private_key.p12 私钥解密时, 要用到该密码, 需要记录下 ), 会提示再次输入检验刚才输入的密码.