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

  • 第一种、设备动态密码
  • 第二种、普通的软件注册码
  • 第三种、通过文件去注册

原文链接:https://blog.csdn.net/lweiyue/article/details/90902031

虽然标题列出了很多种“码”,但其实有些是一个意思,只是叫法不一样而已。我所介绍的算法也不是说绝对严谨、不能破解的,它们只是适用于某些场合而已。举个例子,我现在想设计一个长度是24个字符的注册码,但如果你用比较安全的RSA算法来做的话,可能你要用到1024个字节,转成Base64也有170个字符。又比如,认证码的用户都是体力劳动者,但你非要做得顶级黑客都无法攻破,感觉就没有意义了。以下所说的几种认证码,都是我工作过程中遇到过的,把设计方法分享给大家:

第一种、设备动态密码

这里介绍的密码是用在那种CPU是单片机、PLC的机器上的。我们会遇到一种这样的情况:在机器的屏幕上,你可以看到一些数据,但如果你想进入高级设置,你就需要输入一个8位的密码。但问题很快就来了,你不小心被别人看到了密码,然后这个密码很快就传播开来了。这样的密码等于没有密码了。所以我们这里提出了这样的设计需求:

(1)密码只能是阿拉伯数字,而且不能太长,一般要求10位以下,否则记不住,或让人感觉厌烦。

(2)密码包含用户信息,系统能知道是谁对设备进行了操作。

(3)密码是动态的,每次都不一样。

(4)密码能够防止恶意篡改。

第二种、普通的软件注册码

有几种情况:

(1)软件生成一个机器码,交给开发者,开发者提供一个注册码。

(2)把用户名交给开发者,开发者提供一个注册码。

(3)直接向开发者索取一个注册码。

虽然情况看似不同,但其实算法是基本一致的。而且,很多时候,注册码里面还应包含过期信息。

第三种、通过文件去注册

当然,第二种方法把注册码放在文件里就是了。一般情况下,第二种方法的注册码是可抄的,也就是说不会太长,只有数字和少量字母等等。而第三种方法用到的文件,可以存放更多的信息,一般安全性会更高一些。

后面的章节详细说明三种场合所使用的算法。

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

  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. 编译器设计-代码生成
  2. iOS OpenCV 图像灰度处理
  3. hibernate-validate
  4. 真效率神器,UI稿智能转换成前端代码,准确率极高
  5. 数据结构之内部排序一
  6. Graph Embedding:word2vec更进一步?
  7. word 编辑域中的汉字_Word中根号2、根号3怎么打?
  8. putty远程登录linux无ssh,收集的linux远程ssh连接putty失败解决办法!
  9. ZOJ1151 Word Reversal(没法提交)
  10. 如何提高python代码运行速度_一行代码让你的python运行速度提高100倍
  11. pyspider all 只启动了_好程序员大数据分享Spark任务和集群启动流程
  12. C# HttpWebRequest 绝技 【转】
  13. java jdk 8 中文文档
  14. 小管家进销存_36氪首发 | 进销存SaaS提供商 「来肯云商」 获数百万美金A轮融资,要做“ERP+微商城 ”的一体化产品...
  15. matlab——for循环
  16. App架构设计经验谈
  17. 共享服务中心建设原则
  18. win7管理员取得所有权
  19. 海大11年春第5题:编程输出[m,n]之间所有素数,m,n由键盘输入。(10分)
  20. lego_loam 代码阅读与总结

热门文章

  1. 题解 luogu P6002 【[USACO20JAN]Berry Picking S】
  2. DVWA教程实践之Brute Force
  3. java代码混淆加密_关于Java加壳和代码混淆
  4. mysql密码怎么解密_MySQL密码加密与解密详解
  5. 华硕K40IN关闭触摸板
  6. 软考--软件设计师--下午题数据库设计
  7. 安卓学习之路-RecyclerView的简单用法
  8. Java基础-Java语言简介
  9. SQL Server 2012 下载与安装详细教程
  10. 【Large Scale Adversarial Representation Learning 大规模对抗学习(BigGAN) 】学习笔记