收藏
回答

请教一个密码算法问题

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug Windows 1.02.180250

要生成一个8位密码,要求根据输入的ID号(10位)、密码(6位)、开始日期时间(准确到小时)、失效日期时间(准确到小时) 而产生一个密码,此密码要能再解出来。现在不知如何才能实现,请有经验的大侠给点建议。谢谢!

如:

ID号: 0123456789

密码:123456

开始日期时间:2018年11月24日 8时

失效日期时间:2018年11月26日 8时


是根据以上条件生成一个密码,再解码。

最后一次编辑于  2018-11-24  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

5 个回答

  • 微盟
    微盟
    2018-11-24

    这是不可能的,要求压缩的信息过长,8位是做不到的。

    2018-11-24
    赞同 2
    回复
  • 黑白埋
    黑白埋
    2018-11-26

    方法: 对id和时间按规则切分,做成数据字典,进行压缩。

    1、id(6位数字)+密码(6位数字)=999999999999 的62进制(数字+大小写)=hBxM5A3

    2、时间用从当日开始判断过了多少小时一般1位62进制就够了,过期小时是一般是常量可以定死在代码里站0位。

    所以7+1=8位。

    3、安全问题可以考虑动态话数据字典,也可以最终对结果加密。



    2018-11-26
    赞同
    回复
  • 许许
    许许
    2018-11-24

    ID和密码都是纯数字 。

    2018-11-24
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-11-24

    emmm

    2018-11-24
    赞同
    回复 10
    • 许许
      许许
      2018-11-24

      没有数据库的,我是两个应用。一个生成密码,另外一个通过这个密码解码后登录

      2018-11-24
      回复
    • 卢霄霄
      卢霄霄
      2018-11-24回复许许

      密码和id都是纯数字,就可以办到的哦~ 实际操作的时候,主要要打乱 0-9 A-Z a-z的顺序,然后把序列存到自己代码里。

      2018-11-24
      回复
    • 许许
      许许
      2018-11-24回复许许

      ID和密码都是纯数字。ID可以只取后6位来做。

      2018-11-24
      回复
    • 卢霄霄
      卢霄霄
      2018-11-24回复许许

      仔细换算了一下,如果用64个字符计算,最多只能表示13位10进制数

      2018-11-24
      回复
    • 许许
      许许
      2018-11-24回复卢霄霄

      “可以用1位来表示6位纯数字”这个不明白 是什么意思,请解释一下。谢谢!

      2018-11-24
      回复
    查看更多(5)
  • 这都申请了
    这都申请了
    2018-11-24

    为什么要规定8位呢?等一个高手来解答

    2018-11-24
    赞同
    回复