Flutter密钥管理插件hdkey的使用

Flutter密钥管理插件hdkey的使用

hdkey 是一个用于 BIP32(分层确定性密钥)的 Dart 库。本文将介绍如何在 Flutter 中使用该库。

安装

pubspec.yaml 文件中添加以下依赖:

dependencies:
  hdkey: ^最新版本号
  hex: ^0.1.2

然后运行 flutter pub get 来安装这些依赖。

使用

示例代码

import 'dart:typed_data';
import 'package:hdkey/hdkey.dart';
import 'package:hex/hex.dart';

void main() {
  // 示例种子
  var seed =
      'fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542';

  // 创建 HDKey 对象
  final HDKey hdkey = HDKey.fromMasterSeed(Uint8List.fromList(HEX.decode(seed)));

  // 派生子密钥
  HDKey childkey = hdkey.derive("m/0/2147483647'/1");

  // 打印派生后的私钥和公钥
  print(childkey.privateExtendedKey);
  // 输出: xprv9zFnWC6h2cLgpmSA46vutJzBcfJ8yaJGg8cX1e5StJh45BBciYTRXSd25UEPVuesF9yog62tGAQtHjXajPPdbRCHuWS6T8XA2ECKADdw4Ef
  print(childkey.publicExtendedKey);
  // 输出: xpub6DF8uhdarytz3FWdA8TvFSvvAh8dP3283MY7p2V4SeE2wyWmG5mg5EwVvmdMVCQcoNJxGoWaU9DCWh89LojfZ537wTfunKau47EL2dhHKon
}

方法说明

从助记词创建 HDKey

const mnemonic = 'chapter eager old retreat wire drift deal later ignore magic veteran liberty crime rice describe';
final HDKey hdkey = HDKey.fromMnemonic(mnemonic);

从主种子创建 HDKey

const seed = 'a0c42a9c3ac6abf2ba6a9946ae83af18f51bf1c9fa7dacc4c92513cc4dd015834341c775dcd4c0fac73547c5662d81a9e9361a0aac604a73a321bd9103bce8af';
final HDKey hdkey = HDKey.fromMasterSeed(Uint8List.fromList(HEX.decode(seed)));

从扩展密钥创建 HDKey

const key = 'xprvA2nrNbFZABcdryreWet9Ea4LvTJcGsqrMzxHx98MMrotbir7yrKCEXw7nadnHM8Dq38EGfSh6dqA9QWTyefMLEcBYJUuekgW4BYPJcr9E7j';
final HDKey hdkey = HDKey.fromExtendedKey(key);

派生密钥

HDKey childkey = hdkey.derive("m/0/2147483647'/1");

签名和验证

// 签名
Uint8List signature = hdkey.sign(Uint8List.fromList([/* 哈希值 */]));

// 验证签名
bool isValid = hdkey.verify(Uint8List.fromList([/* 哈希值 */]), signature);

清除私钥数据

hdkey.wipePrivateData();

更多关于Flutter密钥管理插件hdkey的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter密钥管理插件hdkey的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,hdkey 是一个用于生成和管理分层确定性(HD)密钥的插件。HD密钥是根据BIP32标准生成的,可以用于生成多个子密钥,这些子密钥都是从同一个根密钥派生出来的。hdkey 插件通常用于加密货币钱包中,但也可以用于其他需要密钥管理的场景。

安装 hdkey 插件

首先,你需要在 pubspec.yaml 文件中添加 hdkey 插件的依赖:

dependencies:
  hdkey: ^0.0.2

然后运行 flutter pub get 来安装依赖。

使用 hdkey 插件

以下是如何在Flutter中使用 hdkey 插件的基本示例:

import 'package:hdkey/hdkey.dart';
import 'package:hex/hex.dart';

void main() {
  // 1. 生成根密钥
  String seed = "000102030405060708090a0b0c0d0e0f";
  HDKey rootKey = HDKey.fromMasterSeed(HEX.decode(seed));

  // 2. 派生子密钥
  HDKey childKey = rootKey.derive("m/0'/1");

  // 3. 获取私钥和公钥
  String privateKey = HEX.encode(childKey.privateKey!);
  String publicKey = HEX.encode(childKey.publicKey);

  print("Private Key: $privateKey");
  print("Public Key: $publicKey");
}
回到顶部