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