tic-crypto/README.md
2021-03-10 15:59:46 +08:00

86 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 | | |
---