Browse Source

更改文件密码接口和修正了一些变量格式

master
刘子旺 7 months ago
parent
commit
83b8587a71
  1. 48
      godo/files/pwdfile.go

48
godo/files/pwdfile.go

@ -1,9 +1,7 @@
package files package files
import ( import (
"crypto/md5"
"encoding/base64" "encoding/base64"
"encoding/hex"
"encoding/json" "encoding/json"
"godo/libs" "godo/libs"
"net/http" "net/http"
@ -14,8 +12,8 @@ import (
func HandleReadFile(w http.ResponseWriter, r *http.Request) { func HandleReadFile(w http.ResponseWriter, r *http.Request) {
path := r.URL.Query().Get("path") path := r.URL.Query().Get("path")
fpwd := r.Header.Get("fpwd") fPwd := r.Header.Get("fPwd")
haspwd := IsHavePwd(fpwd) hasPwd := IsHavePwd(fPwd)
// 获取salt值 // 获取salt值
salt := GetSalt(r) salt := GetSalt(r)
@ -27,8 +25,8 @@ func HandleReadFile(w http.ResponseWriter, r *http.Request) {
} }
// 有密码校验密码 // 有密码校验密码
if haspwd { if hasPwd {
if !CheckFilePwd(fpwd, salt) { if !CheckFilePwd(fPwd, salt) {
libs.HTTPError(w, http.StatusBadRequest, "密码错误") libs.HTTPError(w, http.StatusBadRequest, "密码错误")
return return
} }
@ -68,26 +66,15 @@ func HandleReadFile(w http.ResponseWriter, r *http.Request) {
// 设置文件密码 // 设置文件密码
func HandleSetFilePwd(w http.ResponseWriter, r *http.Request) { func HandleSetFilePwd(w http.ResponseWriter, r *http.Request) {
fpwd := r.Header.Get("filepwd") fPwd := r.Header.Get("filepPwd")
salt := r.Header.Get("salt") salt := r.Header.Get("salt")
// 密码最长16位
if fpwd == "" || len(fpwd) > 16 {
libs.ErrorMsg(w, "密码长度为空或者过长,最长为16位")
return
}
// md5加密
mhash := md5.New()
mhash.Write([]byte(fpwd))
v := mhash.Sum(nil)
pwdstr := hex.EncodeToString(v)
// 服务端再hash加密 // 服务端再hash加密
hashpwd := libs.HashPassword(pwdstr, salt) hashPwd := libs.HashPassword(fPwd, salt)
// 服务端存储 // 服务端存储
req := libs.ReqBody{ req := libs.ReqBody{
Name: "filepwd", Name: "filePwd",
Value: hashpwd, Value: hashPwd,
} }
libs.SetConfig(req) libs.SetConfig(req)
@ -97,6 +84,23 @@ func HandleSetFilePwd(w http.ResponseWriter, r *http.Request) {
Value: salt, Value: salt,
} }
libs.SetConfig(reqSalt) libs.SetConfig(reqSalt)
res := libs.APIResponse{Message: "success", Data: pwdstr} res := libs.APIResponse{Message: "密码设置成功"}
json.NewEncoder(w).Encode(res) json.NewEncoder(w).Encode(res)
} }
// 更改文件密码
func HandleChangeFilePwd(w http.ResponseWriter, r *http.Request) {
filePwd := r.Header.Get("filePwd")
salt := r.Header.Get("salt")
if filePwd == "" || salt == "" {
libs.ErrorMsg(w, "密码为空")
return
}
newPwd := libs.HashPassword(filePwd, salt)
pwdReq := libs.ReqBody{
Name: "filePwd",
Value: newPwd,
}
libs.SetConfig(pwdReq)
libs.SuccessMsg(w, "success", "The file password change success!")
}

Loading…
Cancel
Save