#hash #octavo #warnings #production #function #sha-512

octavo-digest

Octavo - 加密散列函数。警告!!!不适用于生产环境

3 个版本

使用旧的 Rust 2015

0.1.2 2016 年 4 月 12 日
0.1.1 2016 年 4 月 11 日
0.1.0 2016 年 4 月 8 日

#13 in #sha-512

31 个月下载量
用于 2 crates

MIT 许可证

2.5MB
2.5K SLoC

Octavo

Join the chat at https://gitter.im/libOctavo/octavo

Crates.io License Build Status Coverage Status GetBadges Game Gratipay

Octavo

高度模块化且可配置的纯 Rust 编写的哈希和加密库。

安装

[dependencies]
octavo = { git = "https://github.com/libOctavo/octavo" }

警告!!! Octavo 处于非常早期的开发阶段。存在大量的问题和漏洞,可能遭受各种攻击!请不要在生产代码中使用(目前还不行)!

贡献

你可以通过以下 3 种方式帮助此项目

  1. 帮助我编写代码!只需分叉,创建分支,编码并提交 pull-request。太棒了!
  2. 审计代码或使用它。如果你发现一个错误,只需提交一个问题,这也是很大的帮助。
  3. Gratipay 上支持我们。

完全披露

如果你发现安全漏洞,请通过邮件 [email protected] 使用我的 PGP 密钥联系我。

许可证

查看 LICENSE 文件。


lib.rs:

加密哈希函数原语

通过 维基百科

理想的加密哈希函数有四个主要特性

  • 对于任何给定的消息,计算哈希值都很简单
  • 从哈希值生成消息是不可行的
  • 在不更改哈希值的情况下修改消息是不可行的
  • 找到两个具有相同哈希值的不同消息是不可行的。

示例

计算 SHA-512 求和

use octavo_digest::Digest;
use octavo_digest::sha2::Sha512;

let mut result = vec![0; Sha512::output_bytes()];
let mut sha = Sha512::default();

sha.update(data);
sha.result(&mut result);

for byte in result {
    print!("{:2x}", byte);
}
println!(" {}", data);

依赖项