架构师训练营第十一周 - 作业
请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
Clojure 代码 https://github.com/gzeureka/check-password
请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文)返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
Clojure 代码 https://github.com/gzeureka/check-password
(ns check-password.core (:gen-class) (:require [buddy.core.hash :as hash] [buddy.core.codecs :as codecs] ) )(defn sha3-512 [s] (codecs/bytes->hex (hash/sha3-512 s)))(defn get-salt-by-user-id [user-id] ; 注意:实际应用中,保存密码时,应该为每个 user 保存不同的 salt ; 验证密码时,根据 user-id 从 DB 中获取 salt "5q3yhCdSDMj9Za9jJE0vhfExlTV8JeSe6XnfblAFkPY" )(defn check-pw [user-id password ciphertext] ; password 是用户输入的密码明文,ciphertext 是 DB 中保存的密文 ; 对密码明文和 salt 进行散列,与 DB 中保存的密文进行对比 (= (sha3-512 (str (get-salt-by-user-id user-id) password)) ciphertext) )
给写代码的人写代码 2017.10.17 加入
Clojure
促进软件开发及相关领域知识与创新的传播
评论