我正在测试尚未发布的应用。我有一个客户端注册/登录,使用Alamofire发布然后检索和解析JSON。除非Alamofire有" blackboxed"某种类型的哈希,我不知道在任何地方编码任何类型的哈希,但是。
当我开始研究为什么测试密码(通过SSL,HTTPS传递,并且没有任何加密工作)出现在服务器端看起来像哈希的结果时,我将结果与故意服务器端Sha256哈希(完成原始,纯文本密码匹配从应用程序传递的原始)。我看到了这个:
"ccc" ----> Sha256 hash = 64daa44ad493ff28a96effab6e77f1732a3d97d83241581b37dbd70a7a4900fe
"ccc" ----> "simple iOS post" (via Alamofire) = 9df62e693988eb4e1e1444ece0578579
正如您所看到的,值非常不同,这意味着除非我知道在路上发生了什么,我无法验证服务器端的任何人,也不能使用任何服务器端密码重置功能,因为我有不知道使用了什么样的哈希。
有谁能帮我知道哈希密码发生了什么?
这是基于Alamofire的简单代码(Xcode 9,Swift 4):
//creating parameters for the post request
let parameters: Parameters=[
"username":textFieldUserName.text!,
"password":textFieldPassword.text!,
"name":textFieldName.text!,
"email":textFieldEmail.text!,
"phone":textFieldPhone.text!,
"user_type":String(user_type),
"user_privileges":String(user_privileges)
]
print("Post Contents ('parameters') = \(parameters)")
//Sending http post request
Alamofire.request(URL_USER_REGISTER, method: .post, parameters: parameters).responseJSON
{
response in
//printing response
print(response)
//getting the json value from the server
if let result = response.result.value {
//converting it as NSDictionary
let jsonData = result as! NSDictionary
}
}
答案 0 :(得分:0)
md5($pass);
无需为此烦恼。现在希望我甚至没有发布它。但是,也许它会帮助别人。