我的应用程序收到UTF-16字符串作为密码,应该使用UTF-8编码在数据库中加密后保存。我正在采取以下行动
这是保存AES加密密码的正确方法吗?请建议是否有更好的方式
答案 0 :(得分:0)
我认为您将编写的密码转换为十六进制数字或base-64编码要好得多。这样您就可以保证没有奇怪或非法的UTF-16符号,也不会在UTF-8中使用\ n,\ r或\ t。转换后的文字会稍微大一点 - 希望它不是什么大不了的事。
答案 1 :(得分:0)
根据您的要求,您可能需要考虑首先将字符串编码为UTF-8,然后对其进行加密。 这种方法的优点在于,存储在DB中的散列基于独立于字节顺序的二进制格式。 使用UTF-16时,当您在不同系统上使用不同编程语言实现客户端时,通常需要处理字节序。