无聊地做了个东西——名字颜色计算器

貌似下午的时候研究了一个下午的密码学,之后感觉不想做什么事了。但是想起不久前设想过在聊天室中根据不同的用户名字来设置用户的消息颜色,于是就决定把这个算法单独写出来做一个“名字颜色计算器”。实在是无聊之作……不过算了,也可以作为元旦礼物的说。

说一下算法

首先获取用户名,并进行MD5计算。使用MD5进行计算的原因是,这样可以使相似的名字的颜色不相似。换言之,两个很相像的名字的颜色是不会相似的。
一般网页上的颜色代码有6个十六进制位。而MD5计算出来的有32个十六进制位,为了充分利用计算结果[1],我把32个十六进制位分成6组,把MD5计算结果的前30位平均分成5组,每组6位,剩下2个位自己做一组,这样就有了6组十六进制数。
之后,把这6组十六进制位进行异或计算,最终结果就是名字的颜色代码。因为网页上的颜色代码也是十六进制的,所以直接输出就可以了。
如果名字是英文的话,那么字母的大小写会对结果造成很大影响,因为是MD5嘛,一点点不同都会是截然不同的结果。所以,为了防止一个英文名字首字母大写或首字母小写或者是全部大写出现不同的结果,计算的时候统一将名字转换为大写,但是在输出的时候仍然是原样输出。这样就可以保证,一个名字使用不同的大小写,可以得到相同的结果。

简单说明:
1、将名字进行MD5计算
2、将计算结果前30位平均分成5组,最后2位自己做为1组。这样共有6组数
3、将6组数进行异或运算,结果就是颜色代码

[1]其实可以不用试用所有的MD5计算结果数位,可以只要其中六位,也是可以达到相同的目的。我使用所有的数位的原因是,感情上不想浪费…,而且在感觉上……这样可以利用所用的信息,感觉比较对应名字…仅此而已……

有兴趣可以玩玩:
http://www.gsea.com.cn/custom/namecolor.php

源程序可以在这里下载
[file]attachment/200612/name_color.zip[/file]

该文章发表于 网页开发。将永久链接保存到书签。

发表评论

电子邮件地址不会被公开。