首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Flutter API encrypt读取PEM文件

使用Flutter API encrypt读取PEM文件
EN

Stack Overflow用户
提问于 2020-05-11 09:10:24
回答 1查看 1.8K关注 0票数 1
代码语言:javascript
运行
复制
import 'package:encrypt/encrypt.dart';
import 'package:encrypt/encrypt_io.dart';
import 'dart:io';
import 'package:pointycastle/asymmetric/api.dart';
import 'dart:async';
import 'package:flutter/services.dart' show rootBundle;

class Encrypt {
  Future<String> loadPrivateKey() async {
    return await rootBundle.loadString('assets/private_key.pem');
  }

  Future<String> loadPublicKey() async {
    return await rootBundle.loadString('assets/public_key.pem');
  }

  encryptString() async {
    print(loadPublicKey().toString());
    final publicKey =
        await parseKeyFromFile<RSAPublicKey>('${loadPublicKey()}');
    final privateKey =
        await parseKeyFromFile<RSAPrivateKey>('${loadPrivateKey()}');

    final plainText = 'James Bond';
    final encrypter =
        Encrypter(RSA(publicKey: publicKey, privateKey: privateKey));

    final encrypted = encrypter.encrypt(plainText);
    final decrypted = encrypter.decrypt(encrypted);

    print(decrypted);
    print(encrypted.base64);
  }
}

错误:正在执行热重新加载...正在将文件同步到IA Emulator上的设备AOSP...在1021ms内重新加载了707个库中的8个。I/flutter ( 7395):'Future‘E/flutter的实例( 7395):错误:flutter/lib/ui/ui_dart_state.cc(157)未处理的异常: FileSystemException:无法打开文件,路径=’'Future'‘的实例(操作系统错误:没有这样的文件或目录,错误号= 2)

我在yaml文件中添加了如下资产:

代码语言:javascript
运行
复制
flutter:
  assets:
    - assets/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-11 19:19:25

parseKeyFromFile是一个方便的函数,可以读取文件并解析内容。你没有文件,你有一个资产,你已经在做读入字符串的工作了。读完文件后,它就会解析它--这就是你所需要的。

这应该是可行的:

代码语言:javascript
运行
复制
final publicPem = await rootBundle.loadString('assets/public_key.pem');
final publicKey = RSAKeyParser().parse(publicPem) as RSAPublicKey;

私钥也是类似的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61720791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档