HiCrypto是一个基于Cangjie语言开发的密码学库,底层密码密码套件使用了华为公司自研的 openHiTls, 提供高效、敏捷的全场景开源密码学开发套件
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 8 个月前 |
介绍
HiCrypto是一个基于仓颉语言开发的密码学库,底层密码套件使用了华为公司自研的 openHiTLS,提供了高效、敏捷的全场景开源密码学开发套件。
HiCrypto目前提供了常用的哈希算法和消息认证码功能,为开发者提供简单易用的密码学接口。
优势
- 使用高效便捷
- 基于openHiTLS,安全性高
- 支持多种常用哈希算法
- 统一接口设计,易于扩展
- 符合密码学标准规范
特性
- 支持MD5哈希算法
- 支持SHA1哈希算法
- 支持SHA224哈希算法
- 支持SHA256哈希算法
- 支持SHA384哈希算法
- 支持SHA512哈希算法
- 支持SM3国密哈希算法
- 支持HMAC消息认证码
- 支持 SM2 非对称加解密
- 待续 ......
软件架构
HiCrypto采用模块化设计,主要包括哈希算法模块和消息认证码模块。
源码目录
─hicrypto
└─src
├─crypto
│ ├─hash # 哈希算法
│ ├─mac # 消息认证码
│ └─key # 加解密算法
└─test # 测试
接口说明
主要接口说明请参考 API
使用说明
编译构建
编译完成后,二进制产物会存在当前工程 target/release/hicrypto 里面。
配置并更新依赖
在你工程中配置如下:
[target.x86_64-unknown-linux-gnu]
[target.x86_64-unknown-linux-gnu.bin-dependencies]
path-option = [".hicrypto/target/release/hicrypto"] # 替换成自己编译的 hicrypto 二进制包路径
导入依赖包
在源码中导入以下 package:
import hicrypto.crypto.* // crypto
import hicrypto.crypto.hash.* // hash
import hicrypto.crypto.mac.* // mac
import hicrypto.crypto.key.* // key
功能示例
哈希算法使用示例
详细功能参考 TEST
使用MD5算法计算数据哈希值:
示例代码如下:
package testCj
import hicrypto.crypto.hash.*
import hicrypto.crypto.*
main(): Int64 {
let str: String = "dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
let md: Array<Byte> = digest(MD5(), str.toArray())
println(md)
return 0
}
约束与限制
- 需要依赖openHiTLS库
- 需要仓颉编译器1.0.0或更高版本
开源协议
本项目基于 Apache License ,请自由地享受和参与开源。
参与贡献
欢迎给我们提交PR,欢迎给我们提交Issue,欢迎参与任何形式的贡献。