实际项目中,发现前端在生成公钥对象的时候并不是使用这种方式,而是通过对应的模数跟质数来构造公钥对象的,这样的话,需要进一步将生成的公钥取出对应的模数和质数。openssl、java api都可以将质数跟模数取出来。
正常生成公私钥如下:
1.通过openssl工具取出模数和质数
命令行使用 openssl rsa -in priKey.pem -noout -text,得到下图中的modules以及publicExponent
这里我们都取十六进制的。这样对应的模数(前面的00去掉即可)跟质数就出来了。
2.通过java api取对应的模数跟质数
packagecom.wangjinxiang.genkey.util;importjava.security.interfaces.RSAPublicKey;importorg.apache.commons.codec.binary.Base64;public classKeyModulesAndExponentUtil {private static String PUBKEY_TEXT = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxdHDlJrjF+anpWRbiLu