86 lines
7.9 KiB
Markdown
86 lines
7.9 KiB
Markdown
# tic.crypto
|
||
|
||
时光链区块链密码学算法工具库:为区块链相关应用开发提供一套底层的基础算法工具库,用来处理哈希、加解密、签名、助记词、等等。
|
||
|
||
- 支持 md5、sha256 等算法的哈希
|
||
- 基于 bip39 等算法的助记词生成、检验
|
||
- 基于 secp256k1 等曲线算法的签名、交易的加解密
|
||
- 其他辅助算法工具
|
||
|
||
- [tic.crypto](#ticcrypto)
|
||
- [硬件环境](#硬件环境)
|
||
- [软件环境](#软件环境)
|
||
- [安装指南](#安装指南)
|
||
- [用法](#用法)
|
||
- [编程接口规范](#编程接口规范)
|
||
|
||
## 硬件环境
|
||
|
||
- 机型:Mac 或 PC 机
|
||
- 内存:8GB 以上
|
||
- 硬盘:500G 以上
|
||
|
||
## 软件环境
|
||
|
||
- 操作系统:跨平台通用,支持 MacOS, Linux, Windows
|
||
- 开发环境:推荐 Visual Studio Code
|
||
- 运行环境:nodejs 12.16 版本
|
||
|
||
## 安装指南
|
||
|
||
在前后端软件的 package.json 的依赖清单中引入本库:
|
||
|
||
```
|
||
npm install git+https://git.faronear.org/npm/tic.crypto#RELEASE_OR_BRANCH --save
|
||
```
|
||
|
||
## 用法
|
||
|
||
基本用法示例:
|
||
|
||
```
|
||
let ticCrypto=require('tic.crypto') // 引用
|
||
let sw=ticCrypto.randomSecword() // 生成一个随机的助记词(即密语)。或者使用现成的密语。
|
||
let kp=ticCrypto.secword2keypair(sw) // 把密语转换成公私钥
|
||
let address=ticCrypto.secword2address(sw) // 把密语转换成地址
|
||
```
|
||
|
||
## 编程接口规范
|
||
|
||
| 函数名 | 参数 | 备注 |
|
||
| ------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------- | ------ | ----------------------------------------------------- | --- | ---- | ------ | ---------------------------- | ------ | ------ | ------------------ |
|
||
| hash | (data, option={hasher:'sha256', salt, input:'utf8', output:'hex'}) | 哈希算法。给 input(=utf8 | latin1 | ascii)格式的输入 data 加 salt 后,根据 hasher(=sha256 | md5 | sha1 | sha512 | ripemd160),输出 output(=hex | latin1 | base64 | buf)格式的哈希值。 |
|
||
| isHashable | (data) | |
|
||
| isHash | | |
|
||
| encrypt | (data, pwd, option={ cipher:'aes-256-cfb', input:'utf8', output:'hex' }) | |
|
||
| decrypt | (data, pwd, option={ cipher:'aes-256-cfb', input:'hex', output:'utf8' }) | |
|
||
| sign | (data, seckey, option) | |
|
||
| isSignature | | |
|
||
| verify | (data, signature, pubkey, option) | |
|
||
| pass2keypair | | |
|
||
| secword2keypair | | 密语到公私钥 { pubkey, seckey } |
|
||
| seckey2pubkey | | |
|
||
| secword2account | | 密语到账户 { address, pubkey, seckey } |
|
||
| secword2address | | 密语到地址 address |
|
||
| isSecword | | |
|
||
| isSeckey | | |
|
||
| isPubkey | | |
|
||
| isAddress | | |
|
||
| pubkey2address | | |
|
||
| secword2seed | | |
|
||
| randomSecword | (lang) | lang=[ 'CHINESE', 'ENGLISH', 'FRENCH', 'ITALIAN', 'JAPANESE', 'SPANISH' ] |
|
||
| randomSeckey | | |
|
||
| randomKeypair | | |
|
||
| randomString | | |
|
||
| randomNumber | | |
|
||
| randomUuid: { [Function: v4] v1 | | |
|
||
| getMerkleRoot | | |
|
||
| distanceSig | | |
|
||
| compareSig | | |
|
||
| sortSigList | | |
|
||
| getString2Sign | | |
|
||
| rsaSign | | |
|
||
| rsaVerify | | |
|
||
|
||
---
|