哔哩哔哩 BV、AV互转 C#版

从JAVA移植的(从python移植的B站AV号BV号互转算法源码)//套娃

引用@ty1937

https://blog.csdn.net/ty1937/article/details/105080093?

private static string table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";private static Dictionary<string, Int64> b2aDic = new Dictionary<string, Int64>();private static Dictionary<Int64, string> a2bDic = new Dictionary<Int64, string>();static int[] ss = { 11, 10, 3, 8, 4, 6, 2, 9, 5, 7 };static Int64 xor = 177451812;static Int64 add = 8728348608L;/// <summary>/// 泡我(依赖性)/// </summary>/// <param name="a">英文字母的第一个字母</param>/// <param name="b">英文字母的第二个字幕</param>/// <returns>想要的结果(废话)</returns>public static long Power(int a, int b){Int64 power = 1;for (int i = 0; i < b; i++){power *= a;}return power;}/// <summary>/// BV号转av号/// </summary>/// <param name="str">带有BV前缀的编号</param>/// <returns>带有小写av前缀的编号</returns>public static string BV2AV(string str){try{str = str.Trim();b2aDic.Clear();Int64 r = 0;for (int i = 0; i < 58; i++){string s1 = table.Substring(i, 1);b2aDic.Add(s1, i);}for (int i = 0; i < 6; i++){r = r + b2aDic[str.Substring(ss[i], 1)] * Power(58, i);}return "av" + ((r - add) ^ xor);}catch (Exception ex){//MessageBox.Show(ex.ToString());return "Error";throw;}}/// <summary>/// av号转BV号/// </summary>/// <param name="str">带有小写av前缀的编号</param>/// <returns>带有大写BV前缀的编号</returns>public static  string AV2BV(string str){try{str = str.Trim();a2bDic.Clear();string[] strs = { "av" };string[] sss = (str.Split(strs, StringSplitOptions.RemoveEmptyEntries));Int64 s = Convert.ToInt64(sss[0]);StringBuilder sb = new StringBuilder("BV1  4 1 7  ");s = (s ^ xor) + add;for (int i = 0; i < 58; i++){string s1 = table.Substring(i, 1);a2bDic.Add(i, s1);}for (int i = 0; i < 6; i++){string r = a2bDic[(s / Power(58, i) % 58)];int index = Convert.ToInt32(ss[i].ToString());for (int j = 0; j < sb.Length; j++){sb[index] = r.ToCharArray()[0];}}return sb.ToString();}catch (Exception ex){//MessageBox.Show(ex.ToString());return "Error";throw;}}

花了点时间从python移植过来的JAVA移植过来的(套娃)。
java的substring和replace和C#的重载略不同
两个方法依赖Power方法,此为静态工具类

哔哩哔哩 BV、AV互转 C#版相关推荐

  1. 哔哩哔哩 BV、AV互转 Java版

    从python移植的B站AV号BV号互转算法源码 private static String table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJ ...

  2. 哔哩哔哩弹幕爬取以及BV与AV号之间的转换

    作为b站老粉丝,我有义务向新人科普bilibili的发展与纪年史,本人持中立态度,仅做记录工作. B站的API端口都是开放的,用一个很简单的调用命令就可以计算出BV号对应的AV号. B站的源码已经在G ...

  3. B站bv和av互转java代码

    B站bv和av互转java代码 废话不多说直接展示代码 废话不多说直接展示代码 // An highlighted block import java.util.ArrayList; import j ...

  4. Python+BeautifulSoup+Selenium模拟浏览器循环自动播放视频,如哔哩哔哩某个UP主的视频

    1.前言 计算机的出现,推动了人类社会的进步,使得人们更高效的工作或是生活.当我们很"懒"的时候,计算机就能站出来,帮助我们做一些我们觉得浪费时间的事情了.你嫌用手点鼠标麻烦,计算 ...

  5. IDEA JAVA使用BilibiliClient抓取哔哩哔哩用户动态等数据信息

    关于 一直在想办法获取哔哩哔哩的相关对象,对媒体运营数据进行自动管理,于是写了一个BiliClient的JAR包,自己使用,也分享出来,希望可以帮助大家,目前该项目已经上传GITHUB和Maven中央 ...

  6. 互联网日报 | 6月28日 星期一 | B站成立哔哩哔哩快乐奖学金;百度成立独立芯片公司昆仑芯;FF将于7月21日纳斯达克上市...

    今日看点 ✦ 阿里CCO推出"百分百计划",全面升级淘宝天猫服务体验 ✦ 百度芯片业务成立独立芯片公司,第二代芯片下半年量产 ✦ FF与PSAC合并上市文件生效,将于7月21日纳斯 ...

  7. 哔哩哔哩2020年Q4及全年财报:全年营收120亿元,同比增长77%

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 来源丨TechWeb(ID:TechWeb) 北京时 ...

  8. 菜鸟弟弟从零开始的爬取Bilibili弹幕的Python爬虫教程-哔哩哔哩 - ( ゜- ゜)つロ 干杯~

    从零开始的爬取Bilibili弹幕的Python爬虫教程 或许可以作为一个爬虫小白的练手的demo? 还是先看看什么是爬虫吧!(还有Bilibili! ) 网络爬虫: 网络爬虫(又称为网页蜘蛛,网络机 ...

  9. 哔哩哔哩弹幕api及一些解释

    有两个弹幕api接口,分别是移动端与电脑端 https://comment.bilibili.com/ + cid + .xml https://api.bilibili.com/x/v1/dm/li ...

最新文章

  1. centos7 安装 python3
  2. 第一篇 献给一次线上100%CPU
  3. Acwing第 12 场周赛【未完结】
  4. 【Java】6.2 处理对象
  5. gridview 导出到excel,repeater类似
  6. 四种π型RC滤波电路
  7. eclipse主题下载网站
  8. 关于nginx调转404错误页面
  9. 前端学习(892):bom概述
  10. NeurIPS 2019丨深度双线性转换改进细粒度图像分类
  11. java 特殊字符过滤器_java处理url中的特殊字符
  12. UPPERERR.txt
  13. 每当再右侧的选择框中选中一个人的名字时,便在左侧的文本区中显示出此人的情况介绍,按close按钮时结束程序的运行
  14. pycharm去除波浪线的方法
  15. 游戏开发之运算符重载(C++基础)
  16. 操作系统之文件管理系统
  17. 盒子模型(Box Model)
  18. 解决laytpl.js模板引擎插件加载模板后无法获取模板中的元素id等内容
  19. 《Python全栈系列教程》目录
  20. 基于平滑、差分的矩形波零漂(基线漂移)消除算法(MATLAB实现,代码和数据见CSDN同名资源)

热门文章

  1. 大二妹子问锋哥,学Java还是学C,考研还是就业?
  2. 公众号怎么做?要怎么做才赚钱?
  3. html 取消settimeout,JavaScript中停止执行setInterval和setTimeout事件的方法
  4. 华为无线网卡插上服务器没反应,无限网卡插在台式机上没反应啊怎么解决
  5. RoboCupRescue心得
  6. VSCode升级后启动不了~
  7. 项目管理之如何进行项目干系人管理
  8. Parameter number 2 is not an OUT parameter 问题的解决方法
  9. 微信企业号支付授权目录
  10. 华三系统服务器网卡,01-第1章 H3C自研网卡功能及运行环境简介