1,我现在有两个字符串,一个是"00E94D001E",另一个是"1234567891234567",如何转换可以把这两个字符串结合在一起,而且结合了之后是一个只有数字的16位字符串.2.上面生成了一个只有数字的16位字符串(例如1234567891234567),我想通过转换,把它变成一个16位的字符串,在这个字符串里有数字,也有A~Z的字母,怎样做,谢了.

解决方案 »

  1.   

    我再说说我的功能,第一个字符串"00E94D001E"其实是我的网卡ID,第二个字符串"1234567891234567"是一个随机数,我要把二者结合在一齐,生成一个机器码
    (是16位的),但是我想要这个机器码是纯数字.因为我看到其它软件的机器码
    都是纯数字的.怎样可以把这两个字符串关联起来生成一个纯数字的字符串呢.第二个问题就是根据机器码,算出正确的注册码,大家在注册软件的时候注册码都
    是有数字和字母的,那我现在的机器码是纯数字的,怎样可以根据这机器码算出有
    数字,还要有字母的字符串了.这个注册码也是16位的(例如0D5E84FE10ADVC85).
      

  2.   

    楼主说的是注册机吧,这个问题用java不好做,这个好像涉及到程序的脱壳什么的,是底层的东西了。但是楼主如果是要通过网卡的ID好生成一个唯一的注册信息的话,却用不了那么麻烦了。给楼主提供一个常用的方法,这个就要涉及到通过md5算法生成摘要了:在用户注册的时候:
    1、首先读取用户的网卡ID、用户名等信息,将这些信息以某种方式组合起来,并用MD5生成一个唯一的摘要信息(MD5的内容这里不做叙述,可裁减其他文档资源)。
    2、将这段摘要用某种方式记录下来,比如记录在数据库里面、文件里面等等,都可以。在用户登陆的时候
    1、读取用户的网卡信息、用户名等信息,并用同样的方式生成摘要信息(MD5加密是不可逆的)。
    2、将这段信息和用户的数据库(或文件)中的摘要信息进行比较,如果摘要信息相同,则登陆成功。
      

  3.   

    我想应该先应该统一到二进制,再进行处理,java处理二进制应该很简单了
      

  4.   

    你想把00E94D001E里的非数字去掉还是用十六进制的数对应的十进制数代替啊?
      

  5.   

    做一个hash函数总可以把他变出来
      

  6.   

    将0-9,A-F及a-f定义在一个微向量里或者是其它的表里,然后对于待找串中的每个字符看是否在该表集合里,若在则加入到目的串中,若不在则跳过,扫描完两个串的数据目的串就形成了.