Files
C_code/数据结构/课上代码练习/开课前作业/include/security_utils.h
T
Serendipity 93c16edb5a 更新MD文件路径引用
- 修正主README.md中的所有路径引用,使其与当前文件结构一致
- 更新翁凯C语言学习指南链接路径
- 更新五子棋AI项目文档链接路径
- 更新数据结构学习文档链接路径
- 修正编译说明和学习模块使用指南中的目录路径
- 改进五子棋README.md的编译运行说明,增加Windows和Linux/macOS的分平台指导
- 确保所有文档链接和路径引用都能正确工作
2025-10-17 10:52:27 +08:00

47 lines
1.2 KiB
C

/**
* @file security_utils.h
* @brief 安全工具函数头文件
* @note 提供密码哈希、验证等安全相关功能
*/
#ifndef SECURITY_UTILS_H
#define SECURITY_UTILS_H
#include <stdint.h>
#include "config.h"
// SHA-256哈希长度定义
#define SHA256_DIGEST_LENGTH 32
#define SHA256_HEX_LENGTH 65 // 64字符 + 1个终止符
/**
* @brief 计算字符串的SHA-256哈希值
* @param input 输入字符串
* @param output 输出缓冲区,至少需要SHA256_HEX_LENGTH字节
* @note 输出为64位十六进制字符串
*/
void sha256_hash(const char *input, char *output);
/**
* @brief 验证密码是否匹配哈希值
* @param password 明文密码
* @param hash 存储的哈希值
* @return 匹配返回1,不匹配返回0
*/
int verify_password(const char *password, const char *hash);
/**
* @brief 生成密码哈希值
* @param password 明文密码
* @param hash_output 输出缓冲区,至少需要SHA256_HEX_LENGTH字节
*/
void hash_password(const char *password, char *hash_output);
/**
* @brief 安全地清除内存中的敏感数据
* @param ptr 指向敏感数据的指针
* @param size 数据大小
*/
void secure_memset(void *ptr, size_t size);
#endif // SECURITY_UTILS_H