我正在测试一个尚未发布的应用。我有一个客户端注册/登录,使用Alamofire发布然后检索和解析JSON。除非Alamofire“黑盒子”某种类型的哈希,否则我不知道在任何地方编码任何类型的哈希。
当我开始研究为什么测试密码(通过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
}
}
好吧,我感到羞怯。我发现在服务器端的PHP中应用了一个哈希。
md5($pass);
没必要打扰这个。现在希望我甚至没有发布它。但是,也许它会帮助某人。