如何加密管理员密码?
在我的Java Web应用程序中,管理员帐户将使用StandardPasswordEncoder
类创建用户帐户,其中密码将被加密,这很容易。但是,如何加密管理密码,我已经存储在MySQL
数据库中?如何加密管理员密码?
如何加密管理密码,我已经存储在mysql 数据库中?
您可以编辑您的密码:
UPDATE table_name SET pass = MD5(pass);
-- --------------------------^^^-------
-- This can be any Standard encryption algorithm, you can check the link above
你可以看看关于Encryption and Compression Functions
如何,如果我只希望仅加密管理员密码?其他用户 密码将由java控制器类中的admin进行加密。
您可以标记您的密码就像一个主管理,例如,你可以添加在你的表中的列,使管理员和普通用户之间的差异,考虑你在这种情况下,大企业一个管理员帐户是不足够了,您需要许多管理员帐户,并且在此专栏的基础上,您可以使用算法加密管理员帐户,使用其他算法加密其他帐户。使用SHA-256
我设法加密管理员密码,但我不能登录到我的web应用程序 堂妹在Web应用程序的StandardPasswordEncoder类使用
加密密码SHA-256散列算法
SHA-256!= MD5,这是明确的,所以你必须使用相同的algothm在两侧代码和数据库,在您的您正在使用SHA-256
情况下,我假设你正在使用这样的函数:
CODE
public static String sha256(String base) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(base.getBytes("UTF-8"));
StringBuilder hexString = new StringBuilder();
for (int i = 0; i < hash.length; i++) {
String hex = Integer.toHexString(0xff & hash[i]);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
} catch (UnsupportedEncodingException | NoSuchAlgorithmException ex) {
throw new RuntimeException(ex);
}
}
这将加密管理员这样的:
admin = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
DATABASE
所以在你的数据库中,你必须像加密一样密码这样的:
SELECT SHA2('admin', 256);
更新查询应该是这样的:
UPDATE table_name SET pass = SHA2(pass, 256) WHERE admin_master = true;
-- -------------Field to check if it is admin or not ---^
所以,当你尝试登录,你必须检查它是否是管理员或不是,如果管理员加密与SHA-密码256并检查用户是否存在,否则如果用户是ordanary用户,请检查您的previouse算法。
希望这可以给你一个想法。
如果我只想仅加密管理员密码,该怎么办?其他用户的密码将由管理员在java控制器类中加密。 – Shahril
如果你有一个列你可以指定用户权限为admin,你可以做 UPDATE table_name SET pass = MD5(pass)WHERE previlage =“admin”; –
@Shahril你可以像管理员一样标记你的密码,例如你可以在你的表中添加一个列来区分管理员和普通用户,在这种情况下你认为你有一个大企业,一个管理员帐户是不够的,你需要许多管理员帐户,并在此栏的基础上,您可以使用算法加密管理员帐户,使用其他算法加密管理员帐户,您可以获得想法 –
为什么你不用加密的密码编辑你的管理员密码? –
你的意思是直接在mysql中编辑?但在我的Java控制器类的密码编码器.. – Shahril
什么算法你使用MD5 AES或你的Java控制器? –