开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 233|回复: 15
收起左侧

[易语言] 32位的英文+数字 怎么 与 任意位数的纯数字互转?

[复制链接]
结帖率:67% (8/12)
发表于 2025-9-6 07:20:15 | 显示全部楼层 |阅读模式   福建省泉州市
5精币
   群号 :514620060      to       群ID:397A0E6EA2BC6581041346E21DDAB0DB


    群号转ID(514620060)'输出字符串:397A0E6EA2BC6581041346E21DDAB0DB   
    ID转群号(“397A0E6EA2BC6581041346E21DDAB0DB ”)'输出长整数:514620060


主要作用:

1. 缩短长度到13位以内 在其它程序里有的字段只能传入整数/有的是长整数 超过9位数或19位数传入就会溢出变成负数
2. 转为纯数字,以便其它程序调用,原本的字符串被调用时会报错:json.取长整数()解析失败

个人思路:
1. 一开始想的是 收到ID: 397A0E6EA2BC6581041346E21DDAB0DB 就随机生成7位数群号 然后存到数据库里,以后再数据库对照表读 这是最简单的
但存在几个问题,首先 随机生成7位数 如何保证唯一且不重复  其次每秒就需要转换几千次这么频繁的读数据库不会干崩了?
2. 有大佬说映射 反正我也不懂这是啥玩意
3. 新想法:想到以前地道战的密码本以及现代的压缩文件字典,可不可以创建一个  英文+数字+符号  to  纯数字 的字典,直接转换呢???那不是更方便

我的担心:映射转换后的ID会不会和真实QQ号撞库? 比如:用户ID 99713AF302095E3C4CEBBAF14F3DB46C   to  10000131   刚好现实中存在这么一个QQ号 导致数据存储混乱冲突,如何避免这种现象?让ID转换后的纯数字不会撞库现有的QQ号 那么现有的QQ号有啥规律?我猜都是1或2开头  那我能不能控制ID转换后的纯数字是3开头 避免撞腾讯QQ号/群号库?




回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值

结帖率:100% (109/109)

签到天数: 29 天

发表于 2025-9-6 09:30:06 | 显示全部楼层   浙江省温州市
【1-10000】【10001-20000】【2001-30000】
数据库 每次获取某三个段的 数据对比     

本地生成的时候获取比如当前【未被填满个数的 这一段】 比如【1-10000还没满】   那我是不是本地先从这个区间开始生成和对比

即便是q以前 也是 从六位到 现在十几位,不然现在你就还能zhu测到新的六位数了 ,明白我说的意思吗 人家也是区间递增
回复

使用道具 举报

结帖率:100% (109/109)

签到天数: 29 天

发表于 2025-9-6 09:36:21 | 显示全部楼层   浙江省温州市
判断第一个预设个数的区间 【1-10000】是否个数微10000个 如果不是一万个
【{1-4643513aasd},{2-4esrfd13aasd},{3-4try513aasd}........{50-空}....{88-空}....{5000-空}.....{10000-空}】
区间【1-10000】   空>0
那就从这里面抽出没注册 的序号 {50,88,5000,10000}. 本地用户在点生成的时候 从没填满的序号进行捆绑生成比如,随机到{88,56ers245651 },加入进去
下次判断这个区间都满了就下一个区间

点评

你觉得如何?   浙江省温州市  发表于 2025-9-6 09:37
回复

使用道具 举报

结帖率:97% (112/115)

签到天数: 25 天

发表于 2025-9-6 11:14:51 | 显示全部楼层   海南省海口市
你这不是要 md5 ,md5 是不会有重复的

点评

md5 也会有重复的   广东省云浮市  发表于 2025-9-8 13:48
回复

使用道具 举报

结帖率:97% (112/115)

签到天数: 25 天

发表于 2025-9-8 16:55:56 | 显示全部楼层   海南省海口市
cherryy 发表于 2025-9-6 11:14
你这不是要 md5 ,md5 是不会有重复的

MD5有重复,说明你的群也有重复的,
回复

使用道具 举报

结帖率:67% (8/12)

签到天数: 9 天

 楼主| 发表于 2025-9-10 15:09:36 | 显示全部楼层   福建省泉州市
熬夜 发表于 2025-9-6 09:36
判断第一个预设个数的区间 【1-10000】是否个数微10000个 如果不是一万个
【{1-4643513aasd},{2-4esrfd13a ...

你这是随机抽出两个字段,但我这边是  32位的英文+字母是TX那边按照一定规律生成的用户ID 我这边收到后需转成7位纯整数

点评

让你的字段内某个数字 比如1000 加密对应 32位的英文+字母是   浙江省温州市  发表于 2025-9-10 15:19
不是 你抽 字段 字段对应的号 加密算法生成 32位的英文+字母是 不就完了   浙江省温州市  发表于 2025-9-10 15:19
回复

使用道具 举报

结帖率:67% (8/12)

签到天数: 9 天

 楼主| 发表于 2025-9-10 15:10:55 | 显示全部楼层   福建省泉州市
cherryy 发表于 2025-9-6 11:14
你这不是要 md5 ,md5 是不会有重复的

32位的MD5是TX那边传给我的,我这边是要映射转换成7位的纯整数
回复

使用道具 举报

结帖率:67% (8/12)

签到天数: 9 天

 楼主| 发表于 2025-9-10 16:17:32 | 显示全部楼层   福建省泉州市
熬夜 发表于 2025-9-6 09:36
判断第一个预设个数的区间 【1-10000】是否个数微10000个 如果不是一万个
【{1-4643513aasd},{2-4esrfd13a ...

先不说区间问题(毕竟我也不理解怎么取区间) 你这个是不是说: 取一个纯数字 对 32位字符串进行绑定?那我直接从1开始递增绑定不是更简单,但这绑定结果属于随机了 它们之间没有可逆推的计算关系,那我不还得 通过数据表存储进行读取才知道对应值  我的想法是:我的QQ机qi人收到TX消息事件 取出 群ID 397A0E6EA2BC6581041346E21DDAB0DB 我通过自定义的一套算法得到514620060  等要发送群消息时又把 514620060通过自定义的一套算法转成397A0E6EA2BC6581041346E21DDAB0DB 类似可逆的加解密算法  这里需要注意一点:真实的QQ群号算法TX未泄露,所以我这边不求算出真实的QQ群号 ,397A0E6EA2BC6581041346E21DDAB0DB你可以转成1也可以转成2 我只要求转过去的值为10位数以下的整数且这个值可反过来转回原本32位的英文+数字字符串

点评

你五个精币要一个算法 你在开玩笑?1w还得看又没人愿意给你整   浙江省温州市  发表于 2025-9-10 17:47
我说qq的生成顺序原理 以为你自己要弄这么个功能 谁知道你要人家的算法{:7_458:}   浙江省温州市  发表于 2025-9-10 17:46
你这不是胡扯吗   浙江省温州市  发表于 2025-9-10 17:45
就是因为TX没有泄露真实的转换算法,所以我才需要自定义一套只有我自用的转换算法,我的想法是参考地道战的密码本字符与数字映照?   福建省泉州市  发表于 2025-9-10 16:20
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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