开源项目 `password-hashing` 使用教程
2024-08-25 09:14:23作者:咎竹峻Karen
1. 项目的目录结构及介绍
password-hashing/
├── CMakeLists.txt
├── LICENSE
├── README.md
├── scripts/
│ ├── benchmark.sh
│ ├── build.sh
│ ├── clean.sh
│ ├── test.sh
│ └── valgrind.sh
├── src/
│ ├── argon2.c
│ ├── argon2.h
│ ├── core.c
│ ├── core.h
│ ├── encoding.c
│ ├── encoding.h
│ ├── opt.c
│ ├── opt.h
│ ├── thread.c
│ ├── thread.h
│ ├── timing.c
│ ├── timing.h
│ └── blake2/
│ ├── blake2b.c
│ ├── blake2b.h
│ ├── blake2s.c
│ ├── blake2s.h
│ ├── blake2-impl.h
│ ├── blake2.h
│ ├── genkat-c.c
│ └── kat.h
└── test/
├── test.c
├── test.h
├── test_blake2b.c
├── test_blake2s.c
├── test_encoding.c
├── test_opt.c
├── test_threads.c
└── test_timing.c
目录结构介绍
CMakeLists.txt: CMake 配置文件,用于构建项目。LICENSE: 项目许可证文件。README.md: 项目说明文档。scripts/: 包含一些用于构建、测试和清理项目的脚本。src/: 项目的源代码目录,包含 Argon2 密码哈希算法的实现。argon2.c和argon2.h: Argon2 算法的主要实现文件。core.c和core.h: 核心功能实现文件。encoding.c和encoding.h: 编码功能实现文件。opt.c和opt.h: 优化功能实现文件。thread.c和thread.h: 多线程功能实现文件。timing.c和timing.h: 计时功能实现文件。blake2/: Blake2 哈希算法的实现文件。
test/: 包含测试代码,用于验证项目的正确性。
2. 项目的启动文件介绍
项目的启动文件主要是 src/argon2.c,这是 Argon2 密码哈希算法的主要实现文件。该文件包含了 Argon2 算法的初始化、运行和清理函数。
主要函数介绍
argon2_hash(): 用于执行 Argon2 哈希操作。argon2_verify(): 用于验证给定的密码是否匹配哈希值。argon2_error_message(): 用于获取错误信息。
3. 项目的配置文件介绍
项目的配置文件主要是 CMakeLists.txt,这是一个 CMake 配置文件,用于构建和管理项目。
主要配置项介绍
project(argon2): 定义项目名称。add_library(argon2 SHARED src/argon2.c src/core.c src/blake2/blake2b.c ...): 定义生成共享库的源文件。add_executable(argon2-test test/test.c): 定义测试可执行文件。target_link_libraries(argon2-test argon2): 链接库文件。
通过这些配置项,可以构建出项目的共享库和测试可执行文件。
登录后查看全文
热门项目推荐
相关项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
new-apiAI模型聚合管理中转分发系统,一个应用管理您的所有AI模型,支持将多种大模型转为统一格式调用,支持OpenAI、Claude、Gemini等格式,可供个人或者企业内部管理与分发渠道使用。🍥 A Unified AI Model Management & Distribution System. Aggregate all your LLMs into one app and access them via an OpenAI-compatible API, with native support for Claude (Messages) and Gemini formats.JavaScript01
idea-claude-code-gui一个功能强大的 IntelliJ IDEA 插件,为开发者提供 Claude Code 和 OpenAI Codex 双 AI 工具的可视化操作界面,让 AI 辅助编程变得更加高效和直观。Java00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility.Kotlin06
ebook-to-mindmapepub、pdf 拆书 AI 总结TSX00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
515
3.7 K
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
874
550
Ascend Extension for PyTorch
Python
317
362
暂无简介
Dart
759
182
React Native鸿蒙化仓库
JavaScript
300
347
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
334
156
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.31 K
734
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
110
128