当我使用Laravel-PHP框架在Web应用程序中工作时。它还有android和ios应用程序。在Web应用程序中,我使用Hash :: make()进行密码管理,使用Auth机制进行登录尝试。我们还有用于在Web和移动应用之间交换数据的API。我们如何在android和ios平台上使用相同的Laravel机制加密或解密密码凭证。
据我所知,Laravel中的密码管理是基于laravel中提供的加密密钥完成的。那么我们如何使用相同的加密密钥对其进行加密/解密呢?请帮我解决这个问题。
答案 0 :(得分:1)
Laravel使用BCrypt hashing package from Antony Ferrara,因此Hash的实现Illuminate \ Hashing \ BcryptHasher称之为:
$hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost));
由于Antony Ferrara遵循RFC,它应该可以在其他平台上轻松复制。有一个可兼容的iOS库:JFCommon,您应该可以这样做:
NSString *salt = [JFBCrypt generateSaltWithNumberOfRounds: 10];
NSString *hashedPassword = [JFBCrypt hashPassword: password withSalt: salt];
另外,请查看此文章:http://www.jayfuerstenberg.com/blog/bcrypt-in-objective-c
在Android上,有人在他们的应用中使用此Java库:http://www.mindrot.org/projects/jBCrypt/,但我不确定这是否适合您的开发需求。