【踩坑】Dart实现RSA加解密时报错
前言
Dart实现RSA加解密时报错:Unhandled Exception: type 'ASN1Sequence' is not a subtype of type 'ASN1Integer' in type cast
原因
- Dart中的RSA密钥中没有
RSA关键字,而Go语言生成的RSA密钥中包含RSA关键字
解决问题
- 将
RSA关键字从RSA密钥中去除
转换公钥中的RSA关键字
- 将
-----BEGIN RSA PUBLIC KEY-----转换为-----BEGIN PUBLIC KEY----- - 将
-----END RSA PUBLIC KEY-----转换为-----END PUBLIC KEY-----
1 | rsaPublicKey = rsaPublicKey.replaceAll("-----BEGIN RSA PUBLIC KEY-----", "-----BEGIN PUBLIC KEY-----"); |
转换私钥中的RSA关键字
- 将
-----BEGIN RSA PRIVATE KEY-----转换为-----BEGIN PRIVATE KEY----- - 将
-----END RSA PRIVATE KEY-----转换为-----END PRIVATE KEY-----