#hashing #sha-224 #sha-256 #sha-512 #sm3 #sha-1 #md5

crabcrypt

一个正在开发中的加密库,目前支持哈希功能

2 个版本

0.1.1 2023年7月10日
0.1.0 2023年7月10日

#1559加密学

34 每月下载次数

MIT 许可证

110KB
2K SLoC


crabcrypt

Crabcrypt Status Implemented Features

欢迎使用 Crabcrypt,这是一个正在 Rust 中开发的全面加密库。

状态

该项目目前正在 开发中。目前,哈希功能已实现。

特性

以下是我们计划提供的一些主要特性

  • 包括 MD2、MD4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512 和 SM3 等一系列安全的哈希算法。
  • 支持多种字符编码。
  • 高级加密和解密方法的加密选项(开发中)。
  • 为开发者提供高效便捷的 API。

已实现

哈希

Crabcrypt 提供一套哈希算法,包括

  • MD2
  • MD4
  • MD5
  • SHA1
  • SHA224
  • SHA256
  • SHA384
  • SHA512
  • SM3

即将实现更多功能。请继续关注!

用法

以下是如何在 Crabcrypt 中使用哈希功能的示例

use crabcrypt::{
    Algorithms,
    BinaryToTextEncoding::Hex,
    Hash
};

fn main() {
    let hash_md5 = Hash::create(Algorithms::Md5)
        .update(b"The quick brown fox jumps over the lazy dog")
        .digest(Hex);
    println!("MD5: {}", hash_md5);

    let hash_sha1 = Hash::create(Algorithms::Sha1)
        .update(b"The quick brown fox jumps over the lazy dog")
        .digest(Hex);
    println!("SHA-1: {}", hash_sha1);

    let hash_sha256 = Hash::create(Algorithms::Sha256)
        .update(b"The quick brown fox jumps over the lazy dog")
        .digest(Hex);
    println!("SHA-256: {}", hash_sha256);

    let hash_sha512 = Hash::create(Algorithms::Sha512)
        .update(b"The quick brown fox jumps over the lazy dog")
        .digest(Hex);
    println!("SHA-512: {}", hash_sha512);

    let hash_sm3 = Hash::create(Algorithms::Sm3)
        .update(b"The quick brown fox jumps over the lazy dog")
        .digest(Hex);
    println!("SM3: {}", hash_sm3);

    // Create a mutable hash for the SHA256 algorithm
    let mut hash_sha256_2 = Hash::create(Algorithms::Sha256);

    // First update
    hash_sha256_2.update(b"The quick brown fox ");

    // Second update
    hash_sha256_2.update(b"jumps over the lazy dog");

    // Elsewhere in the code, the digest is calculated
    let sha256_result_2 = hash_sha256_2.digest(Hex);
    println!("SHA-256 (updated twice): {}", sha256_result_2);
}

贡献

由于 Crabcrypt 处于早期开发阶段,我们非常感谢任何和所有的贡献!无论是报告错误、建议新功能、改进文档还是编写代码,我们都欢迎所有贡献。

许可证

Crabcrypt 是 MIT 许可

无运行时依赖