当前位置:首页 >探索 >为什么存储密码字符数组比字符串更合适? 因为字符串是字符不可变

为什么存储密码字符数组比字符串更合适? 因为字符串是字符不可变

2024-06-30 17:33:19 [百科] 来源:避面尹邢网

为什么存储密码字符数组比字符串更合适?

作者:佚名 存储 存储软件 因为任何可以访问内存的存储人能以明码的方式把密码dump出来。另外你还应该始终以加密而不是密码普通的文本来表示密码。因为字符串是字符不可变,因此没有任何方法可以改变其内容,数组适任何改变都将产生一个新的比字字符串,而如果使用char[],符串你就可以设置所有的更合元素为空或者为零。

 “为什么存储密码用字符数组比字符串更合适”这个问题是存储我的一个朋友在最近一次面试中提到的。那哥们应聘的密码是一个技术lead职位,有超过六年的字符工作经验。字符数组和字符串都可以用于存储文本数据,数组适但是比字在选择具体哪一种时,如果你没有针对具体的符串情况是很难回答这个问题的。但是更合正如这哥们说的任何与字符串相关的问题一定可以从字符串的属性里面的线索中找到,比如不可变性。存储他就用这种方式去说服面试官的。这里我们就来探讨一些关于为什么你应该使用char[] 来存储密码而不是字符串。

[[227740]]

为什么存储密码字符数组比字符串更合适? 因为字符串是字符不可变

1. 因为字符串是不可变对象,如果作为普通文本存储密码,那么它会一直存在内存中直至被垃圾收集器回收。因为字符串从字符串池中取出的(如果池中有该字符串就直接从池中获取,否则new 一个出来,然后把它放入池中),这样有很大的机会长期保留在内存中,这样会引发安全问题。

为什么存储密码字符数组比字符串更合适? 因为字符串是字符不可变

因为任何可以访问内存的人能以明码的方式把密码dump出来。另外你还应该始终以加密而不是普通的文本来表示密码。因为字符串是不可变,因此没有任何方法可以改变其内容,任何改变都将产生一个新的字符串,而如果使用char[],你就可以设置所有的元素为空或者为零(这里作者的意思是说,让认证完后该数组不再使用了,就可以用零或者null覆盖原来的密码,防止别人从内存中dump出来)。所以存储密码用字符数组可以明显的减轻密码被盗的危险。

为什么存储密码字符数组比字符串更合适? 因为字符串是字符不可变

2. Java官方本身也推荐字符数组,JpasswordField的方法getPassword()就是返回一个字符数组,而由于安全原因getText()方法是被废弃掉的,因为它返回一个纯文本字符串。跟随Java 团队的步伐吧,没有错。

3. 字符串以普通文本打印在在log文件或控制台中也易引起危险,但是如果使用数组你不能打印数组的内容,而是它的内存地址。尽管这不是它的真正原因,但仍值得注意。

String strPassword="Unknown";

char[] charPassword= new char[]{ 'U','n','k','w','o','n'};

System.out.println("String password: " + strPassword);

System.out.println("Character password: " + charPassword);

 

String password: Unknown

Character password: [C@110b053

以上所有就是为什么字符数组比字符串保存密码要好的原因,尽管使用char[]还不足以安全。我同样建议你用hash或者密码加密代替普通文本,而且一旦认证完成尽可能快的把他清除掉。

责任编辑:武晓燕 来源: ImportNew 存储密码字符

(责任编辑:休闲)

    推荐文章
    • 花呗升级和不升级区别在哪里 贷款利率会下降吗?

      花呗升级和不升级区别在哪里 贷款利率会下降吗?对于很多年轻人来说,无论是在线上的电商平台支付,还是在线下的实体商店支付,使用花呗都是一件比较平常的事情。有不少花呗用户都收到了花呗服务升级提示,花呗升级和不升级区别在哪里?花呗不升级还能用吗?花呗升 ...[详细]
    • 节前又现弃奖!

      节前又现弃奖!河北607万元大奖过期,奖金滚入公益金新快报讯 记者陆妍思 通讯员冀彩报道 1月25日,是河北省沧州市双色球607万元大奖兑奖期限的最后一天,由于大奖得主仍未现身,607万元大奖最终成为弃奖,奖金自动 ...[详细]
    • 泰勒·斯威夫特照片被滥用,生成式AI让Deepfake变得廉价且简单

      泰勒·斯威夫特照片被滥用,生成式AI让Deepfake变得廉价且简单来源:DeepTech深科技嗨,泰勒·斯威夫特Taylor Swift),我们对最近发生在你身上的事情感到遗憾。看到 X 平台上传播的那些关于你的深度伪造色情内容,我能想象到你的心情,恶心、苦恼,甚至 ...[详细]
    • 城市绿地与学龄儿童视力水平呈正相关

      城市绿地与学龄儿童视力水平呈正相关本报讯记者朱汉斌)近日,中山大学公共卫生学院教授陈亚军课题组研究发现,城市绿地与学龄儿童视力水平呈正相关,与视力受损风险呈负相关。相关成果发表于《环境国际》。“该研究是一项以中国大样本学龄儿童人群为对 ...[详细]
    • 棠记控股(08305.HK)预计年度亏损不少于50万港元 毛利严重下降

      棠记控股(08305.HK)预计年度亏损不少于50万港元 毛利严重下降棠记控股(08305.HK)公布,惟与截至2019年12月31日止的综合盈利220万港元相比,集团预期于截至2020年12月31日止年度将录得综合亏损不少于50万港元。预期2020年度综合盈利下跌主要 ...[详细]
    • 陈有华:算一算  更接近科学真相

      陈有华:算一算  更接近科学真相陈有华 ■本报记者 杨晨陈有华的书桌上,有一个A4纸大小的厚皮记事本。里面少有文字记述,更多的是一行行推导公式,或者折线图。“像这幅图,就是我模拟的物种随气候变化的衰减趋势,然后再根据这个猜想,结合数 ...[详细]
    • 世界未解之谜是真?是假?科普作家教你一招破解

      世界未解之谜是真?是假?科普作家教你一招破解在我们生活的地球上,一直流传着许许多多神秘现象,如神秘的百慕大三角、金字塔法老的诅咒、人体自燃、麦田怪圈等等。那么,UFO是外星人的飞船吗?快速射电暴是怎么产生的?暗能量很神秘吗?宇宙大沉默是怎么回事 ...[详细]
    • 欧洲大陆高温新纪录:48.8摄氏度

      欧洲大陆高温新纪录:48.8摄氏度据新华社电 世界气象组织30日正式确认欧洲大陆最高气温纪录刷新为48.8摄氏度119.8华氏度),为2021年8月11日出现在意大利西西里岛。世界气象组织说,一个由大气科学家组成的国际专家小组确认了西 ...[详细]
    • 10月安徽经济运行总体平稳 新兴动能不断增强

      10月安徽经济运行总体平稳 新兴动能不断增强安徽省统计局近日发布信息,今年10月份,我省整体经济继续保持恢复态势,主要宏观指标增速符合预期、快于全国,新兴动能不断增强。10月份,全省规模以上工业增加值同比增长3%,两年平均增长5.7%、比全国高 ...[详细]
    • “拖堂”半小时,这场面对面交流后,为何局长直呼大受启发?

      “拖堂”半小时,这场面对面交流后,为何局长直呼大受启发?“不仅委员们带着问题,很多市级相关部门负责人也带着工作疑惑有备而来。”成都进入两会时间,1月30日,在成都市政协十六届二次会议“委员·局长面对面”现场咨询交流活动现场,成都市政协委员,成都市科技局党组 ...[详细]
    热点阅读