【踩坑】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
2
rsaPublicKey = rsaPublicKey.replaceAll("-----BEGIN RSA PUBLIC KEY-----", "-----BEGIN PUBLIC KEY-----");
rsaPublicKey = rsaPublicKey.replaceAll("-----END RSA PUBLIC KEY-----", "-----END PUBLIC KEY-----");

转换私钥中的RSA关键字

  • -----BEGIN RSA PRIVATE KEY-----转换为-----BEGIN PRIVATE KEY-----
  • -----END RSA PRIVATE KEY-----转换为-----END PRIVATE KEY-----

完成

参考文献

CSDN——立青_
Github——psycura