在讨论中,我们的一位大四学生告诉我们不应该使用String在Java项目中存储密码,因为它存在安全风险。 但它在C项目中是可以接受的。我不明白为什么他这么说。 谁能告诉我为什么这么做?
答案 0 :(得分:7)
在Java中,字符串是不可变的,因此一旦使用String存储密码,就无法更改内容,因为任何更改都将产生新的String。 并且包含密码的String将在内存中可用,直到它被垃圾收集。因此它将长时间保留在内存中,这可能存在安全风险。
但是,在 C语言中,String是空终止字符数组,您可以将所有数组元素设置为空或零,因此密码不会保留在记忆中。