Xcode iOS密码通过“某些”哈希/加密类型获得AF“发布” - 啥样的?

Posted

技术标签:

【中文标题】Xcode iOS密码通过“某些”哈希/加密类型获得AF“发布” - 啥样的?【英文标题】:Xcode iOS password get AF 'posted' with "some" hash / type of encryption - what kind?Xcode iOS密码通过“某些”哈希/加密类型获得AF“发布” - 什么样的? 【发布时间】:2018-01-04 00:37:57 【问题描述】:

我正在测试一个尚未发布的应用。我有一个客户端注册/登录,使用 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
        
    

【问题讨论】:

【参考方案1】:

嗯,我觉得很害羞。我发现在服务器端的 php 中应用了一个哈希。

md5($pass);

无需为这个而烦恼。现在希望我什至没有发布它。但是,也许它会对某人有所帮助。

【讨论】:

也请原谅我犯了将哈希与加密混淆的常见错误。我知道它们不一样(前者是可撤销的,后者是,如果它是可撤销的,那就浪费了)。

以上是关于Xcode iOS密码通过“某些”哈希/加密类型获得AF“发布” - 啥样的?的主要内容,如果未能解决你的问题,请参考以下文章

安全技术系列 密码学-哈希算法

密码加密和通过网络发送的最佳方法[重复]

springboot+security 的BCryptPasswordEncoder 使用

哈希算法是什么?非对称加密是什么?

在 PHP 中匹配 128 个字符的密码哈希 - 使用 Ruby on Rails 加密

iOS逆向之密码学