feat: 添加请求参数验证中间件和设计令牌Hook
feat(validation): 为机房、机柜和设备路由添加Joi验证中间件 feat(hooks): 创建useDesignTokens Hook集中管理主题配置 feat(models): 为耗材模型添加乐观锁version字段和updatedAt索引 feat(3d): 增强3D场景和设备模型视觉效果与交互 refactor: 移除数据备份相关功能并优化代码结构 fix: 修复前端安全日志和密码加密工具 chore: 更新依赖并添加axios和joi库 docs: 更新注释和文档说明 style: 改进代码格式和命名一致性
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
/**
|
||||
* 前端密码加密工具
|
||||
* 注意:这只是增加一层保护,真正的安全需要 HTTPS
|
||||
*/
|
||||
|
||||
/**
|
||||
* 使用 SHA-256 对密码进行哈希
|
||||
* @param {string} password - 明文密码
|
||||
* @returns {Promise<string>} - 返回十六进制哈希值
|
||||
*/
|
||||
export async function hashPassword(password) {
|
||||
const encoder = new TextEncoder();
|
||||
const data = encoder.encode(password);
|
||||
const hashBuffer = await crypto.subtle.digest('SHA-256', data);
|
||||
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
||||
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
|
||||
}
|
||||
|
||||
/**
|
||||
* 为登录请求准备密码(双重哈希:SHA-256 + 服务器 bcrypt)
|
||||
* @param {string} password - 明文密码
|
||||
* @returns {Promise<string>} - 哈希后的密码
|
||||
*/
|
||||
export async function preparePassword(password) {
|
||||
if (!password) return password;
|
||||
return await hashPassword(password);
|
||||
}
|
||||
Reference in New Issue
Block a user