教你一招,如何利用ASCII码快速有效地提升自己的账号安全
前言
相信很多小伙伴都体会过这样的事情,老板站在身边,爸妈站在身后,自己的用户名就赤裸裸的暴露在他们的眼前。假如是朋友亲人还好,如果让坏人偷看到了自己的账户,安全隐患可想而知。
基于这样的背景下,今天做了一个非常有趣的测试(其实是老师让做的),测试一下有没有电脑能识别但是显示不出来的奇怪字符。
然后我们将这些字符加到用户名中,这样即使别人看了你的账号甚至看了你的密码也无可奈何。
首先了解一下什么是ASCII码。
ASCII码
ASCII (American Standard Code for Information Interchange):美国信息交换标准代码,是基于拉丁字母的一套电脑编码系统。它是最通用的信息交换标准,ASCII第一次以规范标准的类型发表是在1967年,到目前为止共定义了128个字符,而后新增了128个字符,一共256个字符。
其中:
-
不可打印的控制字符为前32位(0~31)
-
32~127位是打印字符,其中包括标点符号和英文字母的大小写等
-
128~255位是扩展字符,包括一些特殊的符号,它们就是今天的主角。
小提示:我们可以通过按住alt键+小键盘上的数字输入对应的ASCII编码。
修改登录规则和用户名
首先我们把windows改为可输入用户名(吃饱了撑的)
Win+R调出运行菜单输入"gpedit.msc",打开本地策略组编辑器,依次选择-Windows 设置–安全设置–本地策略–安全选项。
将交互式登录:不显示上次登录改为启用
Win+R调出运行菜单输入“netplwiz”,或者在搜索框内输入“用户账户”
勾选上“要使用本计算机,用户必须输入用户名和密码”选项。
做实验
接下来让我们测试到底有哪些字符能作为用户名而无法显示在屏幕上呢?是不是有点小期待。
为了方便本次实验,全程在虚拟机中测试,虚拟机版本winxp,不影响在其他版本上的使用
1) 控制字符
我们先对控制字符进行测试,显然他们都不行~
2) 可打印字符
显然除了空格以外,其他的字符都能显示,对于本次测试意义不大。
3) 拓展字符
表太长就不截图了~感兴趣的朋友可以自己搜一下
我们对拓展字符进行测试,将所有可打印字符依次输入到用户名修改界面,发现表中的字符不可见且占有实际位置。
ASCII编码值(十进制) | 十六进制 |
---|---|
129 | 81 |
141 | 8D |
143 | 8F |
144 | 90 |
157 | 9D |
160 | A0 |
我们对这些字符进行集合测试。一共六个字符作为用户名,其中ASCII编码160和空行类似。注销之后输入对应的用户名,成功登录。
输入错误顺序的用户名或者使用空行代替ASCII编码160字符,均会导致登录失败。这证明在系统内部机器还是将这些字符进行独立的存储和识别。
结论
通过对256个ASCII编码的测试,我们发现,有一部分字符可输入但不可显示并且能作为用户名或者是密码来使用。
如果我们在自己的用户名或者密码中加入这些字符,其他人看来这些字符的显示效果相同,而实际上却对应不同的用户名和密码,这种方式大大提高了账户的安全性。
当然,也增大了账号输入的复杂性(狗头保命)
原创首发,欢迎来我的博客留言讨论,我的博客主页:LeonG是什么意思?
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。