hicrypto:基于仓颉语言的密码学库项目

HiCrypto是一个基于Cangjie语言开发的密码学库,底层密码密码套件使用了华为公司自研的 openHiTls, 提供高效、敏捷的全场景开源密码学开发套件

分支1Tags0
文件最后提交记录最后更新时间
10 个月前
9 个月前
9 个月前
10 个月前
9 个月前
9 个月前
8 个月前
8 个月前
8 个月前

HiCrypto

介绍

HiCrypto是一个基于仓颉语言开发的密码学库,底层密码套件使用了华为公司自研的 openHiTLS,提供了高效、敏捷的全场景开源密码学开发套件。

HiCrypto目前提供了常用的哈希算法和消息认证码功能,为开发者提供简单易用的密码学接口。

优势

  • 使用高效便捷
  • 基于openHiTLS,安全性高
  • 支持多种常用哈希算法
  • 统一接口设计,易于扩展
  • 符合密码学标准规范

特性

  1. 支持MD5哈希算法
  2. 支持SHA1哈希算法
  3. 支持SHA224哈希算法
  4. 支持SHA256哈希算法
  5. 支持SHA384哈希算法
  6. 支持SHA512哈希算法
  7. 支持SM3国密哈希算法
  8. 支持HMAC消息认证码
  9. 支持 SM2 非对称加解密
  10. 待续 ......

软件架构

HiCrypto采用模块化设计,主要包括哈希算法模块和消息认证码模块。

源码目录

─hicrypto
  └─src
      ├─crypto
      │  ├─hash # 哈希算法 
      │  ├─mac  # 消息认证码
      │  └─key  # 加解密算法
      └─test    # 测试

接口说明

主要接口说明请参考 API

使用说明

编译构建

  1. 环境准备

    (1) 需要安装和配置 openHiTLS

    (2) 配置仓颉SDK

    (3) 配置 stdx

  2. 构建项目

    cd hicrypto
    ./build_linux.sh
    

编译完成后,二进制产物会存在当前工程 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,欢迎参与任何形式的贡献。

项目介绍

HiCrypto是一个基于Cangjie语言开发的密码学库,底层密码密码套件使用了华为公司自研的 openHiTls, 提供高效、敏捷的全场景开源密码学开发套件

定制我的领域