我正在将一个带有SQL DB的旧.net应用程序改编为Laravel框架。我已完成迁移和模型,sqlsrv驱动程序和连接文件正在运行,但我遇到了使用加密方法的问题。我对加密知之甚少。
生产中的应用程序具有以下加密功能:
private string Key = "";
private readonly byte[] IVector = new byte[8] { 17, 19, 25, 17, 10, 32, 161, 24 };
public string Encrypt(string inputString)
{
byte[] buffer = Encoding.ASCII.GetBytes(inputString);
TripleDESCryptoServiceProvider tripleDes = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
tripleDes.Key = MD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Key));
tripleDes.IV = IVector;
ICryptoTransform ITransform = tripleDes.CreateEncryptor();
return Convert.ToBase64String(ITransform.TransformFinalBlock(buffer, 0, buffer.Length));
}
在Laravel上, Auth :: attempt 有效,但凭据不匹配,我认为是因为加密方法。
Auth::attempt([
'userName' => 'hard_coded_username',
'password' => 'hard_coded_password',
]);
我已经检查了不同的加密方法来验证它。
$db_pass = 'hard_codded_encrypted_password_from_db';
$md5 = md5($db_pass);
$bcrypt = bcrypt($md5);
$encrypted = Crypt::encrypt($db_pass);
$encryptedMD5 = Crypt::encrypt($md5);
dd($md5, $bcrypt, $encryptedMD5, $encrypted, $encryptedMD5);
那么,我怎样才能让它发挥作用?任何建议或指南将不胜感激。
答案 0 :(得分:0)
public function getAuthPassword() {
return bcrypt($this->userPassword);
}