我正在嘗試使用SHA1()來加密正在使用MySql作爲遠程數據庫的Android應用程序的密碼。MySql SHA1()允許不正確的密碼短語
要測試實現,我只是將用戶電子郵件地址添加到密碼並通過SHA1()運行。該代碼段是從SQL數據庫上:
INSERT INTO person (
email_address,
user_password
) VALUES (
str_email,
SHA1(str_password+str_email)
);
登錄功能:
SELECT id FROM person WHERE
email_address = userEmail AND
user_password = SHA1(userPassword+userEmail);
如果我加一個人有「[email protected]」和「ABC」作爲密碼,然後使用'[email protected]'和'differentPassword'調用登錄函數,該過程仍然會從人員表中返回正確的ID,在那裏我預計沒有結果。
與SHA1('正確的電子郵件'+'正確的密碼')匹配的SHA1('正確的電子郵件'+'錯誤的密碼')如何?
我使用的主機是慈善機構的雲主機。 BCrypt不可用,所以我僅限於使用內置的MySql函數。
使用SHA1來「加密」密碼是非常薄弱的,不是一個好主意。 – tadman
SHA不加密!這是一個哈希算法。 – marekful
謝謝,我已經更新了這個問題,以表明我正在使用的限制。 – DaveSav