机器码生成

如果我们希望注册码只能在一台电脑上使用,那就需要生成一个机器码。把机器码交给开发者,开发者经过一系列的运算之后,返回一个注册码。这个注册码已经包含了机器信息,只能用在一台电脑上。

机器码可以从很多硬件信息上得到,例如是MAC地址、磁盘ID、CUP序列号等。但这些信息有几个问题:

(1)不一定唯一,很多同个型号的电脑,硬件信息都是一样的。

(2)不一定存在。例如没有网卡,MAC地址就无从谈起。

(3)会被改变。更换硬件当然是一个方面,但即使没有更换硬件,有时候硬件信息也会改变。

上面的问题,2、3其实都不是很重要,大不了重新注册一遍,问题1是最严重的。在一些公司里面,电脑是统一采购的,硬件信息重复的概率很高。

当然,我们可以综合几个硬件信息,但也不能保证不会出现重复。

可以使用一种“软”的方法来获取硬件信息。就是我们软件在第一次运行时,生成一个随机数,保存在一个不容易被发现的地方(例如是注册表,或者是一个隐藏的文件)。我们并不需要保证用户无法修改,我们是允许用户修改的。只是修改之后,用户就需要重新注册一遍软件。

对于真正的硬件信息,我们还看到一个问题,就是硬件信息的长度不一定是我们需要的。例如MAC地址是6个字节的,一般显示出来是12个字符。如果我们希望机器码是8个字符呢?

其实我们可以先求出硬件信息的MD5值,然后截取MD5字符串的若干位。

机器码、序列号、认证码、注册码的生成算法(三)相关推荐

  1. 机器码、序列号、认证码、注册码的生成算法(二)

    设备动态密码设计 我们再把需求列出来: (1)密码只能是阿拉伯数字,而且不能太长,一般要求10位以下,否则记不住,或让人感觉厌烦. (2)密码包含用户信息,系统能知道是谁对设备进行了操作. (3)密码 ...

  2. adb 判断imei_获取设备序列号 SN码(对应:设置-关于手机-状态-序列号 )

    本文 前情提要 我们通过 SN 码和 IMEI 码来混合确定一个唯一的 android 手机. SN码是Serial Number的缩写,有时也叫SerialNo,也就是产品序列号,产品序列是为了验证 ...

  3. HMAC(1)消息认证码MAC算法

    1. 定义 MAC(Message Authentication Code) 算法是以消息本身和密钥作为输入,经过一系列计算产生一个消息哈希的算法,用来保证消息的数据完整性和消息的数据源认证. 2. ...

  4. 【转】HMAC哈希消息认证码及算法原理

    HMAC算法原理 HMAC算法是一种基于密钥的报文完整性的验证方法 ,其安全性是建立在Hash加密算法基础上的.它要求通信双方共享密钥.约定算法.对报文进行Hash运算,形成固定长度的认证码.通信双方 ...

  5. mysql序列号生成_忘掉 Snowflake,感受一下性能高出587倍的全局唯一ID生成算法

    今天我们来拆解 Snowflake 算法,同时领略百度.美团.腾讯等大厂在全局唯一 ID 服务方面做的设计,接着根据具体需求设计一款全新的全局唯一 ID 生成算法.这还不够,我们会讨论到全局唯一 ID ...

  6. JAVA加密解密之消息认证码算法(Message Authentication Code,MAC)

    消息认证码算法简介 在密码学中,消息认证码(英语:Message authentication code,缩写为MAC),又译为消息鉴别码.文件消息认证码.讯息鉴别码.信息认证码,是经过特定算法后产生 ...

  7. IMEI 码的校验和生成

    IMEI 码的校验和生成 文章目录 IMEI 码的校验和生成 IMEI 码 Luhn算法 代码实现C IMEI 码 IMEI 码,即手机的串号.它是 International Mobile Equi ...

  8. 消息认证之SHA散列算法族

    消息认证--安全散列算法SHA(Secure Hash Algorithm) 一. 消息认证 对要传递的消息进行加密有两个目的,其一是防止消息被消息发送者和消息接收者之外的第三者窃听(被动攻击),在之 ...

  9. 消息认证码和单向散列函数

    因为在上一部分没有解释这两个概念,所以在这里详细解释一下 消息验证码和单向散列函数是进行消息身份验证的两个方法 而且他俩都属于"没有消息加密的消息身份验证" 消息认证码(MAC) ...

  10. 美团技术分享:深度解密美团的分布式ID生成算法

    本文来自美团技术团队"照东"的分享,原题<Leaf--美团点评分布式ID生成系统>,收录时有勘误.修订并重新排版,感谢原作者的分享. 1.引言 鉴于IM系统中聊天消息I ...

最新文章

  1. face alignment by 3000 fps系列学习总结(二)
  2. 布隆过滤器的原理、应用场景和源码分析实现
  3. RabbitMQ消息队列简单异步邮件发送和订单异步处理实战【应用解耦】【异步削峰】
  4. 网页设计中 透明效果的使用技巧
  5. IterableThread
  6. Bootstrap3 缩写词样式
  7. python3 super_python3的super详解
  8. 大佬怼国产特斯拉:将必遭这款车型碾压
  9. linux mono环境
  10. Android音视频【七】H265硬编解码视频通话
  11. nali——linux显示IP来源的工具
  12. 在GEE平台提取Sentinel-1 SAR GRD的VV+VH波段
  13. Python MD5值破解
  14. 51单片机教程:51单片机驱动四个8*8点阵,拼凑16*16点阵显示标准汉字。
  15. 致这一段无悔的大学青春
  16. 理解 word2vec
  17. 开关电源计算机仿真技术pdf,《开关电源仿真设计》PPT课件.ppt
  18. 五十条经典的做人哲学
  19. maven打包可执行的jar包-包含依赖jar
  20. python压缩文件操作_Python tar、zip压缩文件操作方法

热门文章

  1. 计算机原理及应用教学大纲,《单片机原理及应用技术》课程教学大纲
  2. 欧盟无线产品RED认证
  3. windowsxp主题包教大家如何制作windows7主题包
  4. 基于 Markdown 的中文文档排版规范
  5. 推荐5款精挑细选的软件,大幅提升工作效率,用一次就会爱上
  6. 扒一扒「清华系」的 AI 安防大佬们
  7. 千里达v1000时速_《美骑评测》第10期 千里达V1000山地车 评测
  8. c语言dnf脚本源码,dnf纯脚本源码贝贝
  9. 如何查询计算机主机序列号,计算机硬盘序列号如何查询
  10. 西威变频器avo下载调试资料_免费下载 |《西门子全集成自动化技术》,很全很详细...