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