如何从flutter_sodium 0.2.0迁移到sodium_libs并生成密钥对?
解决sodium_libs生成Box密钥对的问题
Box.keyPair()是实例方法,不能直接通过类名静态调用,需先初始化sodium实例,再通过正确的实例化方式调用密钥生成方法。
正确实现步骤:
- 先初始化sodium库(必须步骤,否则无法使用加密功能)
- 通过初始化后的sodium实例调用Box的密钥生成方法
示例代码:
// 初始化sodium final sodium = await Sodium.init(); // 生成随机Box密钥对(包含私钥和公钥) final receiverKeyPair = sodium.box.keyPair(); // 分别提取公钥和私钥 final receiverPublicKey = receiverKeyPair.publicKey; final receiverSecretKey = receiverKeyPair.secretKey;
- 若想直接使用Box类,需先基于sodium实例创建Box实例,再调用keyPair方法:
final sodium = await Sodium.init(); final box = Box(sodium); final receiverKeyPair = box.keyPair();
两种方式均可生成有效Box密钥对,推荐第一种更简洁的写法。
内容的提问来源于stack exchange,提问作者FashionFlutter
相关产品推荐
相关产品推荐

