栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java char []数组jPasswordField处理和SQL更新语句

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java char []数组jPasswordField处理和SQL更新语句

String.valueOf(charArray)
创建一个String,并且同样不安全。

如今,人们可以使用JDBC:

char[] password = ...;try (PreparedStatement stmt = con.prepareStatement("...")) {    Reader reader = new CharArrayReader(password);    stmt.setCharacterStream(1, reader);    stmt.executeUpdate();    stmt.clearParameters();}Arrays.fill(password, ' ');

这样可以确保在执行此代码后,没有任何对象漂浮在周围以进行垃圾收集,这可能会显示密码。

当然,只要JDBC驱动程序不泄漏即可。该 clearParameters 似乎有点过头了,但谁知道。

CharArrayReader并 没有 复制传递的数组,因此这是安全的了。


要求提供具体代码:

String sql = "UPDATE teachers SET password=? WHERe firstname=? AND lastname=?";try (PreparedStatement pStat = con.prepareStatement(sql)) {    Reader reader = new CharArrayReader(newPassword);    pStat.setCharacterStream(1, reader);    pStat.setString(2, firstName);    pStat.setString(3, lastName);    pStat.executeUpdate();    pStat.clearParameters();}Arrays.fill(newPassword, ' ');

由于该语句应关闭,因此我可以自由使用局部变量。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号