#hash #openssl #sha-256 #command-line-tool

应用 sapphire-hash

一个递归的、性能高效的文件哈希计算器

3个版本

0.1.2 2024年5月7日
0.1.1 2024年3月16日
0.1.0 2024年3月16日

#4 in #sha256

MIT 许可证

29KB
557

蓝宝石哈希

使用Rust编写的递归、性能高效的哈希计算器!

命令行工具 图形用户界面
CLI Demo GUI Demo

使用方法(GUI)

发布页面下载应用程序,解压缩并运行。

使用方法(CLI)

安装Rust和Cargo: https://rustup.rs/

使用以下命令安装应用程序

cargo install sapphire-hash

运行

sapphire-hash --algorithm <ALGORITHM> <DIRECTORY>

在哪里

  • DIRECTORY可以是所需目录或文件的相对路径或完整路径。
  • ALGORITHM是所需的哈希算法。只有OpenSSL实现的算法可用
    • md5
    • sha1
    • sha224
    • sha256
    • sha384
    • sha512
    • sha3_224
    • sha3_256
    • sha3_384
    • sha3_512
    • shake128
    • shake256
    • ripemd160
    • sm3

可选地,您可以使用--output <OUTPUT_PATH>添加一个选项来指定输出。以.csv结尾以生成CSV报告。

日志记录

您也可以通过使用环境变量RUST_LOG=trace来启用日志记录。

如果您想将结果和日志记录到不同的文件中,您可以使用

RUST_LOG=trace sapphire-hash --algorithm ALGORITHM DIRECTORY | tee result.txt 2>/dev/stdout | tee log.txt

开发

依赖项

  • Rust (https://rustup.rs/)
  • 构建工具
    • Ubuntu: build-essential
  • OpenSSL
    • Ubuntu: sudo apt install libssl-dev
    • Windows: 使用vcpkg并通过运行:vcpkg install openssl来安装
  • Flutter和其他用于GUI开发的本地依赖项(见flutter_gui/README.md

设置

克隆仓库。

如果您使用的是Windows,您可能需要使用环境变量OPENSSL_DIR指定OpenSSL的路径。这是包含lib\include\文件夹的路径。您可以通过运行以下命令来完成此操作

# Windows only
$env:OPENSSL_DIR="C:\path_to_vckpg\packages\openssl_x64-windows"

运行cargo build

使用以下方式使用应用程序

./target/debug/sapphire-hash --algorithm ALGORITHM DIRECTORY

为生产构建

运行

OPENSSL_STATIC=true cargo build --release

使用以下方式使用应用程序

./target/release/sapphire-hash --algorithm ALGORITHM DIRECTORY

运行自动化测试

运行

cargo test

创建用于手动测试的文件

使用以下脚本来创建随机文件:scripts/generate_example_files.sh

检查脚本代码以获取可用选项。

代码检查

运行

RUSTFLAGS=-Dwarnings cargo clippy --all-targets --all-features

GUI 开发

每次您更新 flutter_bridge 项目时,请确保运行代码生成,以便 Flutter 项目能够接收到更改。在 gui_flutter 中运行

flutter_rust_bridge_codegen generate

有关 GUI 开发的更多信息,请参阅 flutter_gui/README.md

依赖项

~9–22MB
~247K SLoC