[IOS]xcode生成公钥私钥

本文介绍了如何在iOS和OpenSSL中生成EC公钥私钥,探讨了两者生成的密钥长度不一致的问题,原因是DER格式的不同。iOS仅接受和生成ASN.1 DER格式,而Java生成的公钥为X509格式,导致互通障碍。解决方案是通过第三方库CryptoExportImportManager进行格式转换。
摘要由CSDN通过智能技术生成

1.通过MAC终端可以生成:

参考:https://www.anquanke.com/post/id/151220?from=timeline

生成EC秘钥命令:openssl ecparam -genkey -name secp256r1 > test_ecc.key     (pem)

查看命令:openssl ec -text < test_ecc.key

生成公钥:openssl ec -in test_ecc.key -pubout -out test_ec_pubkey.pem

查看曲线参数:openssl ecparam -list_curves

2.XCODE:

 key algorithm:EC 对应:kSecAttrKeyTypeEC

(https://developer.apple.com/documentation/security/ksecattrkeytypeec?language=objc)

但是过期了,现在用kSecAttrKeyTypeECSECPrimeRandom

(https://developer.apple.com/documentation/security/ksecattrkeytypeecsecprimerandom?language=objc)

对应java的secp算法

常用的非对称加密算法包括:

(1)RSA:因由 RSA 公司发明而命名,是一个支持变长密钥的公开密钥算法,需要加密的文件块的长度也是可变的;公开密钥算法总是要依据一个数学上的难题。RSA基于大素数积难分解问题,给定两个数p、q 很容易相乘得到n,而对n进行因式分解却相对困难。

(2)ECC(Elli

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值