新浪mid与id互转

分享链接如何泄露你的社交账号ID?六平台隐私风险实测 分享链接不仅是内容分发载体,更是隐含用户身份标识的技术媒介。其底层原理基于URL参数、Open Graph标签、前端全局变量及服务端响应头等公开可获取信息,构成一套跨平台通用的身份映射机制。这种设计本为归因统计服务,却因缺乏默认脱敏与透明提示,导致普通用户在无感知状态下暴露账号ID,进而引发跨平台身份关联、设备指纹聚合与社交关系链推演等多级隐私风险。本文聚焦‘分享链接’与‘账号溯源’两大核心热词,结合微博、小红书、网易云音乐等主流平台实测案例,揭示从参数明文到base64编码路径中隐藏的身份锚点,适用于内容 阅读详情

前言:

    工作需要,顺带研究下,参考资料  新浪微博地址url字符与mid的相互转换算法及原理 由于原文代码看起来有点挫,所以决定把他代码拿过来改改,自己写一个。

    新浪微博链接格式为:http://weibo.com/用户id/mid?其它参数,例如 http://weibo.com/1646512101/A3m18DfFN?mod=weibotime 。而新浪的api有的接口是使用id作为参数,而我们获取的往往是一个url,也就是只能获取mid,所以需要一步转换。显然这一步转换只是个算法问题,新浪也是提供这样的api的,不过api接口调用频率有严格的限制,要是能在本地直接算出来不是更好?其实我觉得新浪把这算法公开不就得了,还省了很多流量。

算法原理:

    目的是把 类似 'A3m18DfFN' 这样的串与 '3607996229355043' 这样的纯数字串互相转换。短的串看起来爽一点,而纯数字串在存储方面可能好些。

     从纯数字到字母和数字组合的转换非常简单,这里用了62个字符做字典:"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

    比如说有个纯数字串 “12153”,那转换结果就是"3a1"  ( 12153 =  3 * 62^2 + 10*62^1 + 1*62^0 ),转换回来也是一样的道理。

    而新浪的转换是把数字从末尾往前分成每7个数字一组进行转换,转换完再把结果合并起来。暂时还不清楚为什么要分组,直接转不就得了(有知道的告诉一声,谢谢)。

    而转换回来把字母数字组合从末尾往前每四个一组进行转换,转换完再把结果合并起来。下面直接看代码吧:

class Str2numeric{
      public static $str62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  
      public static function id2mid($id)
      {
          $result = '';
          $len   = strlen($id);
          $start = $len-7;
          $end   = $len;
          for($i=$len-7;$i>-7;$i-=7){
              $start  = $i<0?0:$i;
              $end    = $i + 7;
              $result = self::int10to62(substr($id,$start,$end-$start)) . $result;
          }
          return $result;
      }
      public static function int10to62($num)
      {
          $result = '';
          while($num){
              $result = self::$str62[$num%62] . $result;
              $num = floor($num/62);
          }
          return $result;
      }
  
      public static function mid2id($mid)
      {
          $result = '';
          $len = strlen($mid);
          for($i=$len-4;$i>-4;$i-=4){
              $start  = $i<0?0:$i;
              $end    = $i + 4;
              $result = self::str62to10(substr($mid,$start,$end-$start)) . $result;
          }
          return ltrim($result,0);
      }
      public static function str62to10($str62)
      {
          $num = 0;
          $len = strlen($str62);
          $power = 1;
          for($i=$len-1;$i>=0;$i--){
              $num += strpos(self::$str62,$str62[$i]) * $power;
              $power *= 62;
          }
          $num = str_pad($num,7,"0",STR_PAD_LEFT);
          return $num;
      }
  }
  
  echo Str2numeric::id2mid('3605852122436718'),"\n",Str2numeric::mid2id('A2seUadTU'),"\n";
  echo Str2numeric::id2mid('3607996229355043'),"\n",Str2numeric::mid2id('A3m18DfFN'),"\n";





    

    

新浪微博的JSON解析 前段时间做了新浪微博的一些基本功能,因为工作上的事情获取数据后的JSON解析一直没空做,今天空下来,研究了一下,现在把结果写出来 在做这个之前我对JSON解析了解的不是很多,只能对一些简单的数据解析,对于稍微复杂一点的结构就一筹莫展了,在网上找了很多资料也没能解决 后来看了这个帖子,终于稍微摸到了一点门道:http://hi.baidu.com/iiloveloveyouyou/blog/it 阅读详情

相关推荐

使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)

不过,status中包含了一个mid字段,通过mid,我们实际上是可以通过计算得到url的。 在开始计算之前有必要说明一下,什么是base62编码。它实际上就是十进制和62位进制的互换。对于62进制,从0数到9以后,10用小写字母a表示,接着数完26个字母,到z为35,然后36为大写字母A,一直到61为大写字母Z。所以,我们可以实现十进制数字base62编码的encode和decode。下面的代码实际上来自stackoverflow: 复制代码 代码如下:ALPHABET = “0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV

微博地址url(id)与mid的相互转换

原理: 新浪微博的URL都是如:http://weibo.com/2480531040/z8ElgBLeQ这样三部分. 第一部分(绿色部分)为新浪微博的域名,第二部分(红色部分)为博主Uid,第三部分(蓝色)为一串貌似随机的字符串. 如果通过方法能计算出蓝色字串与返回的数组里的对应关系则好解决多了. 首先分组蓝色字串 ,从后往前4个字符一组,得到以下三组字符: z 8Elg BLeQ

LKD3063601的专栏 4142

unet学习笔记(milesial/Pytorch-UNet)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 unet学习笔记(milesial/Pytorch-UNet)原理讲解unet_parts.py内容predict.py内容 所用到的代码Pytorch-UNet/predict.py at master · milesial/Pytorch-UNet ·GitHub 原理讲解 蓝/白色框表示 feature map; 蓝色箭头表示 3x3 卷积,用于特征提取; 灰色箭头表示skip-connection,用于特征融合; 红色箭头.

weixin_67138138的博客 2553

随手分享的APP链接,可能会让你“大型社死”

除了小红书以外,根据网站开发者的描述,日常中我们耳熟能详的、使用率极高的大部分APP,包括微博、网易云音乐、QQ音乐、全民K歌、喜马拉雅、雪球、Keep、汽水音乐、百度、小宇宙、知乎......等等,无一例外,都可能会透过分享链接轻松识别你的账号ID。对了,还需要提醒的是,这些你“可能认识的人”,不仅仅包括你的同事,还有等着拉踩你的远房七大姑八大姨,甚至还可能是你老死不相往来的前任,以及......Ta的现男友or现女友。首先,打开朋友转发来的小红书图文链接,点击右上角的“...” ,然后选择复制链接。

FreeBuf_的博客 9056

从Transformer到Mamba:显著性检测领域的计算效率革命(Samba框架深度解析)

本文深入解析了Samba框架在显著性目标检测(Salient Object Detection)领域的创新应用,通过结合Mamba架构的优势,实现了计算效率的革命性提升。Samba框架采用显著性引导的Mamba模块(SGMB)和上下文感知上采样(CAU),有效解决了传统CNN和Transformer的局限性,同时在RGB-D等多模态任务中展现出卓越性能。

mmm90的博客 557

AHB不对称半桥反激电路设计(三)主要器件参数规格计算

本文介绍了AHB拓扑变压器的设计步骤与核心参数计算,包括主控芯片选择、工作原理分析及参数计算。作者选择DK87XXD集成MOS方案,详细阐述了输入电压范围、反射电压限定、匝比计算、工作频率设定、原副边电流值、电感量计算、磁芯选择、匝数计算、谐振电容设计等关键步骤。通过公式推导与实例计算,展示了150W电源的变压器设计过程,最终确定匝比5.5、原边22匝、副边4匝、电感量200uH等参数。文章还讨论了谐振电容与漏感的关系,为后续调试提供理论基础。该设计方法结合理论分析与工程实践,适用于AHB拓扑电源开发。

【Simon】的博客 3328

新浪微博url与mid相互转换(自己总结整理各种语言版本)

转载:比如这条微博:http://weibo.com/user/1713926427/zF4mOFpN7A字符串为   zF4mOFpN7A 分组,从后往前4个字符一组,得到以下三组字符: zF 4mOF pN7A 这三组字符实际上是62进制表示的数值 62进制的字典是0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 按

Eliot 9165

【实战】——零代码玩转Supervisely人像分割:从标注到模型训练的数据流水线搭建

本文详细介绍了如何零代码使用Supervisely平台搭建人像分割数据流水线,从智能标注到数据集格式转换,再到模型训练与优化。Supervisely的智能标注工具和协作功能大幅提升了人像分割项目的效率,特别适合视频会议背景虚化、虚拟试衣等应用场景。

weixin_30694389的博客 413

新浪微博 ID与MID互转 (62进制)

最近在做相和新浪微博相关的项目,因为抓取回来的微博JOSN中,ID和MID都是一样的。而客户又要求可以打开单条微博的查看页面。 本来SDK中是有QueryMID的功能的,但苦于调用次数的限制(一小时100下好像),而微博却又是海量的(其实就几千条啦)。 (http://weibo.com/2121718653/yvsAefokR  ) 在网上搜了好一会,只看到URL转ID的,没看

D!eR 个人博客 8763

Kubernetes集群资源优化实战:Volcano调度器如何帮你省下30%GPU算力

本文详细介绍了如何通过Volcano调度器的Binpack策略优化Kubernetes集群中的GPU资源利用率,解决AI模型训练中的资源碎片化问题。通过实战配置和调优指南,帮助用户提升30%的GPU算力利用率,显著降低任务等待时间和硬件成本。

weixin_30832143的博客 506

Fluent基于低氧舱气体交换仿真(氮气与空气混合)

一、背景概述 模拟低氧舱充氮气和排除混合气体的过程,假设注入95%的氮气,舱内原有气体为空气,压力为标准大气压,温度为300K。观察气体注入过程中,舱内平均氮气和氧气浓度的变化。 二、Fluent设置 Setup 1、General type选择压力基 绝对速度 瞬态 重力勾选 2、Model 能量方程开启 组分运输开启,设置方法如下: 选择后OK,view就会变成Edit,点击Edit。然后再次点击Edit。 将组分中的非氮气氧气和空气的气体移除,右边选项需要将空气放在最后一位。 3、Materi

qq_35535616的博客 1万+

新浪微博URL中的MID和微博id互转

$re = json_decode(file_get_contents("http://api.t.sina.com.cn/queryid.json?mid=xhMRc8nNu&isBase62=1&type=1")); $id = $re->id; echo $id; $re

k1988的程序生活 5516

船舶轨迹预测中的5个常见坑:基于LSTM单步预测的避坑实践

本文针对船舶轨迹预测中LSTM单步预测的常见问题,系统总结了五个典型陷阱及避坑实践。重点分析了如何正确处理AIS数据的非均匀采样与清洗、对航向角进行周期性编码、采用轨迹级归一化策略、缓解单步滚动预测的误差累积,并设计贴合业务的评估指标。这些实践能有效提升预测模型的准确性与实用性。

cnn8visionary的博客 631

新浪微博mid与id互转实用工具(转)

js版 /***新浪微博mid和id转换工具类*@constructor工具类提供10进制和62进制转换*/functionSinaWeiboUtility(){/***62进制字典*@property{String}*/this.str62keys="0123456789abcdefghijklmnopqrstuvwxyzA...

weixin_34408624的博客 373

Arduino IDE 2.3.2 配置 UNO R4 WIFI 开发环境避坑指南(附LED矩阵驱动测试)

本文详细介绍了如何在Arduino IDE 2.3.2中配置UNO R4 WIFI开发环境,并提供了LED矩阵驱动的实战指南。从开发环境搭建到硬件连接,再到LED矩阵的初始化和弹球动画实现,手把手教你避开常见配置陷阱,最终实现流畅的动画效果。特别适合刚接触UNO R4 WIFI的开发者快速上手。

weixin_28675839的博客 219

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

根据新浪微博的mid(url)获得微博id

新浪的每一条微博、评论、私信都有id,同时也有一个url。 以微博为例,每条微博都有一个url,例如http://weibo.com/1594536477/z9Ad7z6AG 其最后的z9Ad7z6AG就是该微博的url,这个url和微博的id有一个加密对应,就是10进制和62进制之间的转换。 转换规则是,url串值从最后往前,每四个字符为一组,作为一个62进制数,然后将各个62进制数转换成

5277

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

新浪微博的mid转换成base62格式的PHP函数

最近有用到将新浪微博的mid地址转换成短格式编码的方法,例如: 221110410216147026 转换后: zF4mOFpN7A 比如新浪微博地址可以组装成这样:http://weibo.com/1642634100/5en0UftjV8H,其中数字是用户的id,后面的字符串是base62加密后的mid,因此通过组装这两个,可以得到信息的主体。 本文的代码,是由http:/...

avfe7468的博客 270

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

新浪微博地址url字符与mid的相互转换算法及原理

过新浪微博api接口发布微博成功后,会返回一个二维数组,这个返回的数组里有微博的内容,发布微博的用户信息等等.却没有所发布成功的微博的URL.很多时候如果要记录信息在数据库 则微博URL应该必不可少.通过新浪微博论坛搜索,发现有以下方法. 原理: 新浪微博的URL都是如:http://weibo.com/1247667622/l4EV85aqp 这样三部分. 第一部分(绿色部分)为新浪微博的

Aring专注网络安全 1739

实现一个新浪微博 MID 转换算法

新浪微博的消息 ID ( MID ) 有字符型和数字型两种形态,可以互相转换。数字型值是字符型值按照 62 进制转换的结果 。 实现一种单向转换即可 。 提示: 转换对应关系: 2211 1041021 6147026 zF 4mOF pN7A 34 7402967 3316812 y v3QH dUQY 自右起,每 7 位 10 进制数字 对应 4 位 62 进

u012139045的专栏 1459

php微博mid转换url,微博地址url(id)与mid的相互转换

/// ///从一条新浪微博地址中获取这条微博的id/// /// 一条微博地址/// 微博idpublic static string GetIdFromUrl(stringurl){string mid =GetMidFromUrl(url);if (string.IsNullOrEmpty(mid)){return string.Empty;}else{returnMid2Id(mid);}...

weixin_39618824的博客 424

javascript实现新浪微博MID与地址转换

新浪微博每一条微博都会有一个mid,然后每条微博都有一个独立的地址,例如:http://www.weibo.com/2722086301/Bw3SXzWzP 规律:地址中的黄色部分是用户id,绿色部分是微博的识别字符串,经过分析应该是62进制的表示。每调微博有一个编号称为mid,是十进制的。所以mid和地址中的绿色部分可以相互转换,转换的js代码如下: 一下代码来自互联网,版权归原作...

didingwan3441的博客 566
上一篇: 反汇编之函数调用
下一篇: 计算两路径的相对路径
小灰马
博客等级 码龄17年 55粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值