设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 12621|回复: 28
收起左侧

在每一条短信尾部加一串数字,再也不可能有造假的了。

[复制链接]
发表于 2017-9-5 09:15:06 | 显示全部楼层 |阅读模式

  1. .版本 2
  2. .支持库 dp1

  3. .程序集 窗口程序集_启动窗口
  4. .程序集变量 私钥, 文本型

  5. .子程序 __启动窗口_创建完毕
  6. .局部变量 防伪码, 文本型

  7. ' 在每一条短信尾部加上此防伪码,可轻松通过官网查询短信是否是由官网发送的。
  8. ' 短信防伪码由24位数字组成,即使不用看发送方号码也可以查到是否是由官网发送的。
  9. ' 201801011234567890301264
  10. ' |------A-----|-B-|--C--|
  11. ' A:短信发送日期时间 14位,上方的防伪码生成日期时间为2018年1月1日12时34分56秒
  12. ' B:短信接收的手机尾号 4位 上方为手机尾号7890的用户接收的此条短信。
  13. ' C:校验码 6位 由专业算法计算而出,伪基站没有算法所以无法伪造出这个校验码。
  14. ' 共需要2个标签 2个编辑框 3个按钮 附件我就不上了。
  15. 私钥 = “DKplOeOj2OyVDQrIbDib4dJzkKd0oAgt”
  16. 置随机数种子 ()
  17. 宽度 = 350
  18. 高度 = 150
  19. 边框 = 3
  20. 标题 = “短信防伪码”
  21. 标签1.左边 = 8
  22. 标签1.顶边 = 8
  23. 标签1.宽度 = 56
  24. 标签1.高度 = 24
  25. 标签1.标题 = “手机尾号:”
  26. 标签2.左边 = 8
  27. 标签2.顶边 = 40
  28. 标签2.宽度 = 56
  29. 标签2.高度 = 24
  30. 标签2.标题 = “防伪码:”
  31. 编辑框1.左边 = 72
  32. 编辑框1.顶边 = 8
  33. 编辑框1.宽度 = 56
  34. 编辑框1.高度 = 24
  35. 编辑框1.最大允许长度 = 24
  36. 编辑框1.输入方式 = 3
  37. 编辑框2.左边 = 72
  38. 编辑框2.顶边 = 40
  39. 编辑框2.宽度 = 168
  40. 编辑框2.高度 = 24
  41. 编辑框2.最大允许长度 = 24
  42. 编辑框2.输入方式 = 3
  43. 按钮1.左边 = 136
  44. 按钮1.顶边 = 8
  45. 按钮1.宽度 = 40
  46. 按钮1.高度 = 24
  47. 按钮1.标题 = “随机”
  48. 按钮2.左边 = 184
  49. 按钮2.顶边 = 8
  50. 按钮2.宽度 = 40
  51. 按钮2.高度 = 24
  52. 按钮2.标题 = “生成”
  53. 按钮3.左边 = 248
  54. 按钮3.顶边 = 40
  55. 按钮3.宽度 = 40
  56. 按钮3.高度 = 24
  57. 按钮3.标题 = “查询”



  58. .子程序 补0, 文本型
  59. .参数 整数, 整数型
  60. .参数 补的0数, 整数型
  61. .局部变量 整数长度, 整数型

  62. 按钮2.左边 = 184
  63. 按钮2.顶边 = 8
  64. 按钮2.宽度 = 40
  65. 按钮2.高度 = 24
  66. 按钮2.标题 = “生成”

  67. 整数长度 = 取文本长度 (到文本 (整数))

  68. 返回 (取重复文本 (补的0数 - 整数长度, “0”) + 到文本 (整数))

  69. .子程序 取数字日期时间, 文本型
  70. .参数 日期时间, 日期时间型
  71. .局部变量 返回值, 文本型

  72. 返回值 = 补0 (取年份 (日期时间), 4)
  73. 返回值 = 返回值 + 补0 (取月份 (日期时间), 2)
  74. 返回值 = 返回值 + 补0 (取日 (日期时间), 2)
  75. 返回值 = 返回值 + 补0 (取小时 (日期时间), 2)
  76. 返回值 = 返回值 + 补0 (取分钟 (日期时间), 2)
  77. 返回值 = 返回值 + 补0 (取秒 (日期时间), 2)




  78. 返回 (返回值)


  79. .子程序 签防伪码, 文本型
  80. .参数 日期时间, 日期时间型
  81. .参数 手机尾号, 整数型
  82. .局部变量 返回值, 文本型
  83. .局部变量 校验码_字节集, 字节集
  84. .局部变量 校验码, 整数型

  85. 返回值 = 取数字日期时间 (日期时间)
  86. 返回值 = 返回值 + 补0 (手机尾号, 4)

  87. 校验码_字节集 = 十六进制到字节集 (取文本左边 (取数据摘要 (到字节集 (返回值 + 私钥)), 6))
  88. 校验码 = 到整数 (取文本右边 (到文本 (取颜色值 (校验码_字节集 [1], 校验码_字节集 [2], 校验码_字节集 [3])), 6))
  89. 返回值 = 返回值 + 补0 (校验码, 6)
  90. 返回 (返回值)


  91. .子程序 十六进制到字节集, 字节集, 公开
  92. .参数 文本, 文本型
  93. .局部变量 计数, 整数型
  94. .局部变量 返回值, 字节集
  95. .局部变量 计数2, 整数型
  96. .局部变量 文本长度, 整数型

  97. 文本长度 = 取文本长度 (文本)
  98. .如果真 (位与 (文本长度, 1) = 1)
  99.     输出调试文本 (“十六进制文本转字节集不得为奇数字节。”)
  100.     返回 ({  })
  101. .如果真结束
  102. 返回值 = 取空白字节集 (文本长度 ÷ 2)
  103. .变量循环首 (1, 文本长度, 2, 计数)
  104.     计数2 = 计数2 + 1
  105.     返回值 [计数2] = 二位十六进制转字节 (取文本中间 (文本, 计数, 2))
  106. .变量循环尾 ()
  107. 返回 (返回值)


  108. .子程序 二位十六进制转字节, 字节型, 公开
  109. .参数 十六进制文本, 文本型

  110. 十六进制文本 = 到大写 (取文本左边 (十六进制文本, 2))
  111. 返回 (位或 (左移 (一位十六进制到十进制 (取文本左边 (十六进制文本, 1)), 4), 一位十六进制到十进制 (取文本右边 (十六进制文本, 1))))


  112. .子程序 一位十六进制到十进制, 字节型, 公开
  113. .参数 十六进制文本, 文本型
  114. .局部变量 十六进制文本2, 文本型
  115. .局部变量 计数, 整数型

  116. 十六进制文本 = 到大写 (取文本左边 (十六进制文本, 1))
  117. 十六进制文本2 = “0123456789ABCDEF”
  118. .计次循环首 (16, 计数)
  119.     .如果真 (取文本中间 (十六进制文本2, 计数, 1) = 十六进制文本)
  120.         返回 (计数 - 1)
  121.     .如果真结束

  122. .计次循环尾 ()
  123. 输出调试文本 (“发现不是十六进制的字符。”)
  124. 返回 (0)

  125. .子程序 字节集到十六进制, 文本型, 公开
  126. .参数 字节集, 字节集
  127. .参数 大写, 逻辑型, 可空
  128. .局部变量 字节集长度, 整数型
  129. .局部变量 返回值, 文本型
  130. .局部变量 计数, 整数型
  131. .局部变量 十六进制文本, 文本型

  132. 字节集长度 = 取字节集长度 (字节集)
  133. .如果 (大写)
  134.     十六进制文本 = “0123456789ABCDEF”
  135. .否则
  136.     十六进制文本 = “0123456789abcdef”
  137. .如果结束
  138. .计次循环首 (字节集长度, 计数)
  139.     返回值 = 返回值 + 取文本中间 (十六进制文本, 右移 (字节集 [计数], 4) + 1, 1) + 取文本中间 (十六进制文本, 位与 (字节集 [计数], 15) + 1, 1)
  140. .计次循环尾 ()
  141. 返回 (返回值)


  142. .子程序 _按钮2_被单击

  143. 编辑框2.内容 = 签防伪码 (取现行时间 (), 到整数 (编辑框1.内容))

  144. .子程序 _按钮1_被单击

  145. 编辑框1.内容 = 补0 (取随机数 (0, 9999), 4)


  146. .子程序 _按钮3_被单击

  147. 核验防伪码 (编辑框2.内容)


  148. .子程序 核验防伪码, 逻辑型
  149. .参数 防伪码, 文本型
  150. .局部变量 数据码, 文本型
  151. .局部变量 校验码, 文本型
  152. .局部变量 校验码_字节集, 字节集
  153. .局部变量 校验码_整数, 整数型
  154. .局部变量 正确的校验码, 文本型
  155. .局部变量 时间, 日期时间型
  156. .局部变量 手机尾号, 文本型

  157. .如果真 (取文本长度 (防伪码) ≠ 24)
  158.     信息框 (“防伪码长度不为24为!”, 16, , )
  159.     返回 (假)
  160. .如果真结束

  161. 数据码 = 取文本左边 (防伪码, 18)
  162. 手机尾号 = 取文本右边 (数据码, 4)

  163. 时间 = 到时间 (取文本左边 (数据码, 14))
  164. .如果真 (时间 = [100年1月1日])
  165.     信息框 (“无效的日期时间!”, 16, , )
  166.     返回 (假)
  167. .如果真结束
  168. 校验码 = 取文本右边 (防伪码, 6)
  169. 校验码_字节集 = 十六进制到字节集 (取文本左边 (取数据摘要 (到字节集 (数据码 + 私钥)), 6))
  170. 校验码_整数 = 到整数 (取文本右边 (到文本 (取颜色值 (校验码_字节集 [1], 校验码_字节集 [2], 校验码_字节集 [3])), 6))
  171. 正确的校验码 = 补0 (校验码_整数, 6)
  172. .如果 (正确的校验码 = 校验码)
  173.     信息框 (“该防伪码是有效的! ” + #换行符 + “该短信于” + 到文本 (时间) + “发送给了手机尾号为” + 手机尾号 + “的用户。”, 64, , )
  174.     返回 (真)
  175. .否则
  176.     信息框 (“该防伪码是无效的!” + #换行符 + “该防伪码可能是由伪基站或其他网站生成的。”, 16, , )
  177.     返回 (假)

  178. .如果结束

  179. 返回 (假)
复制代码


发表于 2017-9-18 22:45:26 | 显示全部楼层

回帖奖励 +6


我也一样。
发表于 2017-9-7 20:54:11 | 显示全部楼层

回帖奖励 +6

不想长大,如果您要查看本帖隐藏内容请回复

发表于 2017-11-10 08:58:40 | 显示全部楼层

回帖奖励 +6

Tiancai,如果您要查看本帖隐藏内容请回复

发表于 2017-9-5 11:37:02 | 显示全部楼层

回帖奖励 +6

看看是啥玩意了。
发表于 2017-9-5 17:44:00 | 显示全部楼层

回帖奖励 +6

我也来看看
发表于 2017-9-6 12:24:53 | 显示全部楼层

回帖奖励 +6

啥神秘发明了还3级精华。
发表于 2017-9-7 18:13:26 | 显示全部楼层

回帖奖励 +6

什么鬼,一脸懵逼回复看看具体
发表于 2017-9-9 07:59:19 | 显示全部楼层

回帖奖励 +6

的确有意思
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-25 13:21 , Processed in 1.233070 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表