Skip to content

Commit fd27789

Browse files
sha256 password
1 parent a30d08f commit fd27789

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

user_controller.cc

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <drogon/drogon.h>
22
#include <json/json.h>
33
#include "mysql.h"
4+
#include <openssl/sha.h>
45
#include "jwt_controller.h"
56
#include "msg_controller.h"
67
using namespace drogon;
@@ -27,17 +28,32 @@ void Handle(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr
2728
res->setBody(output);
2829
callback(res);
2930
}
31+
std::string sha256(const std::string str){
32+
unsigned char hash[SHA256_DIGEST_LENGTH];
33+
34+
SHA256_CTX sha256;
35+
SHA256_Init(&sha256);
36+
SHA256_Update(&sha256, str.c_str(), str.size());
37+
SHA256_Final(hash, &sha256);
38+
39+
std::stringstream ss;
40+
41+
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++){
42+
ss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>( hash[i] );
43+
}
44+
return ss.str();
45+
}
3046
std::string registerUser(const Json::Value& req_json) {
3147
// std::cout<<"Receive Username : "<<req_json["username"].asString()<<std::endl;
3248
// std::cout<<"Receive Passwd: "<<req_json["password"].asString()<<std::endl;
3349
if (sql_check(req_json["username"].asString())){
34-
sql_add(req_json["username"].asString(), req_json["password"].asString(), req_json["avatar"].asInt());
50+
sql_add(req_json["username"].asString(), sha256(req_json["password"].asString()), req_json["avatar"].asInt());
3551
return "Sign up Success";
3652
}else
3753
return "User already exist";
3854
}
3955
std::string loginUser(const Json::Value& req_json) {
40-
if (sql_check(req_json["username"].asString(), req_json["password"].asString())){
56+
if (sql_check(req_json["username"].asString(), sha256(req_json["password"].asString()))){
4157
return "Login Success";
4258
}else
4359
return "Login Failed";

0 commit comments

Comments
 (0)