shawenguan há 2 anos atrás
pai
commit
ecc959bab4
3 ficheiros alterados com 469 adições e 67 exclusões
  1. 67 67
      QuantumultX.conf
  2. 402 0
      Scripts/util/md5.js
  3. 0 0
      Scripts/util/md5.min.js

+ 67 - 67
QuantumultX.conf

@@ -1,10 +1,10 @@
 # > 建议在「其他设置」里「GeoLite2」的「来源」填写使用下面链接「任选一个」,并开启「自动更新」
-; http://rawgithub.jojo21.com/Loyalsoldier/geoip/release/Country.mmdb
+; https://raw.gitmirror.com/Loyalsoldier/geoip/release/Country.mmdb
 ; https://github.com/Hackl0us/GeoIP2-CN/raw/release/Country.mmdb
 
 
 # > 解锁网易云灰色音乐,获取证书链接 
-; http://rawgithub.jojo21.com/nondanee/UnblockNeteaseMusic/master/ca.crt
+; https://raw.gitmirror.com/nondanee/UnblockNeteaseMusic/master/ca.crt
 # > 具体操作步骤可参考下面这篇《利用QuantumultX解锁网易云付费及非版权音乐》文章
 ; https://mp.weixin.qq.com/s/ca6U1O2FTfcqzL7TnJ04IQ
 
@@ -32,10 +32,10 @@ server_check_timeout = 3000
 profile_img_url=https://github.githubassets.com/images/modules/site/integrators/google.png
 # > 用于Check节点IP地址(以下geo_location_checker任选一个即可)
 # geo_location_checker=disabled
-geo_location_checker=http://ip-api.com/json/?lang=zh-CN, http://rawgithub.jojo21.com/KOP-XIAO/QuantumultX/master/Scripts/IP_API.js
+geo_location_checker=http://ip-api.com/json/?lang=zh-CN, https://raw.gitmirror.com/KOP-XIAO/QuantumultX/master/Scripts/IP_API.js
 
 # > 功能强大的解析器,用于引用资源的转换
-resource_parser_url=http://rawgithub.jojo21.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js
+resource_parser_url=https://raw.gitmirror.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js
 
 udp_whitelist=1-442, 444-65535
 # > 第一个filter为4g模式开启规则分流,第二个filter为其他wifi下开启规则分流,第三个wifi1修改成你路由器翻墙的wifi名开启直连模式,第四个wifi2为你公司或者其他有路由器翻墙的WiFi名走直连)
@@ -53,9 +53,9 @@ fallback_udp_policy=direct
 [task_local]
 
 # > 请手动添加下面的订阅(流媒体Task订阅集合)
-; http://rawgithub.jojo21.com/KOP-XIAO/QuantumultX/master/Scripts/UI-Action.json
+; https://raw.gitmirror.com/KOP-XIAO/QuantumultX/master/Scripts/UI-Action.json
 # > 流媒体解锁查询
-event-interaction http://rawgithub.jojo21.com/KOP-XIAO/QuantumultX/master/Scripts/streaming-ui-check.js, tag=流媒体解锁查询, img-url=arrowtriangle.right.square.system, enabled=true
+event-interaction https://raw.gitmirror.com/KOP-XIAO/QuantumultX/master/Scripts/streaming-ui-check.js, tag=流媒体解锁查询, img-url=arrowtriangle.right.square.system, enabled=true
 
 
 [rewrite_local]
@@ -64,7 +64,7 @@ event-interaction http://rawgithub.jojo21.com/KOP-XIAO/QuantumultX/master/Script
 
 [rewrite_remote]
 #>>>>>>>>>>>boxjs
-http://rawgithub.jojo21.com/chavyleung/scripts/master/box/rewrite/boxjs.rewrite.quanx.conf, tag=BoxJS商店版@chavyleung, update-interval=86400, opt-parser=false, enabled=false
+https://raw.gitmirror.com/chavyleung/scripts/master/box/rewrite/boxjs.rewrite.quanx.conf, tag=BoxJS商店版@chavyleung, update-interval=86400, opt-parser=false, enabled=false
 
 #>>>>>>>>>>>解锁会员
 https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/Bilibili.conf, tag=B站去广告+1080P高码率@ddgksf2013, update-interval=86400, opt-parser=false, enabled=true
@@ -78,26 +78,26 @@ https://gitlab.com/ioshkj/quantumultx/-/raw/main/vipjs/lxlpvip.conf, tag=乐秀
 https://gitlab.com/ioshkj/quantumultx/-/raw/main/vipjs/mtxxvip.conf, tag=美图秀秀解锁粉钻, update-interval=172800, opt-parser=false, enabled=false
 https://gitlab.com/ioshkj/quantumultx/-/raw/main/vipjs/huohuvip.conf, tag=火狐解锁永久VIP, update-interval=172800, opt-parser=false, enabled=false
 https://gitlab.com/ioshkj/quantumultx/-/raw/main/vipjs/wumu.conf, tag=唔姆解锁下载限制, update-interval=172800, opt-parser=false, enabled=false
-http://rawgithub.jojo21.com/githubdulong/Script/master/QuantumultX/Script.conf, tag=解锁脚本合集, update-interval=86400, opt-parser=true, enabled=false
+https://raw.gitmirror.com/githubdulong/Script/master/QuantumultX/Script.conf, tag=解锁脚本合集, update-interval=86400, opt-parser=true, enabled=false
 http://ox.xmkczs.com/quantumultX/ads/huatu.conf, tag=画图VIP, update-interval=172800, opt-parser=false, enabled=false
 https://cdn.jsdelivr.net/gh/app2smile/rules@master/module/spotify.conf, tag=Spotify 解锁限制, update-interval=-1, opt-parser=false, enabled=false
-http://rawgithub.jojo21.com/qiangxinglin/Emby/main/QuantumultX/emby.conf, tag=Emby Premiere解锁, update-interval=86400, opt-parser=false, enabled=true
+https://raw.gitmirror.com/qiangxinglin/Emby/main/QuantumultX/emby.conf, tag=Emby Premiere解锁, update-interval=86400, opt-parser=false, enabled=true
 
 #>>>>>>>>>>>软件增强
 https://github.com/ddgksf2013/Rewrite/raw/master/Function/BaiduCloud.conf, tag=百度网盘倍速@ddgksf2013, update-interval=86400, opt-parser=false, enabled=true
-http://rawgithub.jojo21.com/zZPiglet/Task/master/UnblockURLinWeChat.conf, tag=微信解锁被屏蔽的URL@zZPiglet, update-interval=86400, opt-parser=false, enabled=true
-http://rawgithub.jojo21.com/Orz-3/QuantumultX/master/TikTok.conf, tag=Tiktok解锁[需旧版V21]@Orz-3, update-interval=86400, opt-parser=false, enabled=true
-http://rawgithub.jojo21.com/Orz-3/QuantumultX/master/Netflix_ratings.conf, tag=Netflix评分@Orz-3, update-interval=86400, opt-parser=false, enabled=false
+https://raw.gitmirror.com/zZPiglet/Task/master/UnblockURLinWeChat.conf, tag=微信解锁被屏蔽的URL@zZPiglet, update-interval=86400, opt-parser=false, enabled=true
+https://raw.gitmirror.com/Orz-3/QuantumultX/master/TikTok.conf, tag=Tiktok解锁[需旧版V21]@Orz-3, update-interval=86400, opt-parser=false, enabled=true
+https://raw.gitmirror.com/Orz-3/QuantumultX/master/Netflix_ratings.conf, tag=Netflix评分@Orz-3, update-interval=86400, opt-parser=false, enabled=false
 
-http://rawgithub.jojo21.com/githubdulong/Script/master/jdHelper.sgmodule, tag=京东助手, update-interval=172800, opt-parser=true, enabled=false
-http://rawgithub.jojo21.com/VirgilClyne/iRingo/main/qxrewrite/Location.qxrewrite, tag=定位修改, update-interval=172800, opt-parser=false, enabled=true
+https://raw.gitmirror.com/githubdulong/Script/master/jdHelper.sgmodule, tag=京东助手, update-interval=172800, opt-parser=true, enabled=false
+https://raw.gitmirror.com/VirgilClyne/iRingo/main/qxrewrite/Location.qxrewrite, tag=定位修改, update-interval=172800, opt-parser=false, enabled=true
 
-http://rawgithub.jojo21.com/ChuheGit/1/main/Surge/Module/Support.sgmodule, tag=辅助模块, update-interval=86400, opt-parser=true, enabled=false
-http://rawgithub.jojo21.com/ChuheGit/1/main/Surge/Module/Cookie.sgmodule, tag=cookie合集, update-interval=86400, opt-parser=true, enabled=false
+https://raw.gitmirror.com/ChuheGit/1/main/Surge/Module/Support.sgmodule, tag=辅助模块, update-interval=86400, opt-parser=true, enabled=false
+https://raw.gitmirror.com/ChuheGit/1/main/Surge/Module/Cookie.sgmodule, tag=cookie合集, update-interval=86400, opt-parser=true, enabled=false
 
 #>>>>>>>>>>>应用去广告
 https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/StartUp.conf, tag=墨鱼去开屏2.0@ddgksf2013, update-interval=86400, opt-parser=false, enabled=true
-http://rawgithub.jojo21.com/blackmatrix7/ios_rule_script/master/script/zheye/zheye.snippet, tag=知乎去广告及体验增强@blackmatrix7, update-interval=86400, opt-parser=false, enabled=true
+https://raw.gitmirror.com/blackmatrix7/ios_rule_script/master/script/zheye/zheye.snippet, tag=知乎去广告及体验增强@blackmatrix7, update-interval=86400, opt-parser=false, enabled=true
 https://github.com/app2smile/rules/raw/master/module/tieba-qx.conf, tag=百度贴吧去广告@app2smile, update-interval=86400, opt-parser=false, enabled=true
 https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/Applet.conf, tag=微信小程序去广告@ddgksf2013, update-interval=86400, opt-parser=false, enabled=true
 https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/YoutubeAds.conf, tag=油管去广告@DivineEngine, update-interval=86400, opt-parser=false, enabled=true
@@ -105,22 +105,22 @@ https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/Weibo.conf, tag=微博
 https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/Ximalaya.conf, tag=喜马拉雅去广告@ddgksf2013, update-interval=86400, opt-parser=false, enabled=true
 https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/Amap.conf, tag=高德地图净化[卸载重装]@ddgksf2013, update-interval=86400, opt-parser=true, enabled=true
 
-http://rawgithub.jojo21.com/Maasea/sgmodule/master/YoutubeAds.sgmodule, tag=YouTube去广告, update-interval=172800, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/zqzess/rule_for_quantumultX/master/QuantumultX/rewrite/youtube.qxrewrite, tag=YouTuBe广告屏蔽, update-interval=604800, opt-parser=false, enabled=true
+https://raw.gitmirror.com/Maasea/sgmodule/master/YoutubeAds.sgmodule, tag=YouTube去广告, update-interval=172800, opt-parser=true, enabled=true
+https://raw.gitmirror.com/zqzess/rule_for_quantumultX/master/QuantumultX/rewrite/youtube.qxrewrite, tag=YouTuBe广告屏蔽, update-interval=604800, opt-parser=false, enabled=true
 https://gitlab.com/ioshkj/quantumultx/-/raw/main/vipjs/mdsads.conf, tag=麻豆社去广告, update-interval=172800, opt-parser=false, enabled=false
 https://github.com/zmqcherish/proxy-script/raw/main/weibo.conf, tag=微博去广告, update-interval=172800, opt-parser=false, enabled=true
-http://rawgithub.jojo21.com/ddgksf2013/Cuttlefish/master/Rewrite/AdBlock/Bilibili.conf, tag=B站去广告+1080P高码率, update-interval=172800, opt-parser=false, enabled=false
-http://rawgithub.jojo21.com/ddgksf2013/Cuttlefish/master/Applet/QuanX.conf, tag=微信小程序去广告, update-interval=172800, opt-parser=false, enabled=false
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/YouTubeAds.conf, tag=油管广告, update-interval=172800, opt-parser=false, enabled=false
-http://rawgithub.jojo21.com/blackmatrix7/ios_rule_script/master/script/smzdm/smzdm_remove_ads.sgmodule, tag=值买广告, update-interval=172800, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/blackmatrix7/ios_rule_script/master/script/zhihu/zhihu_plus.qxrewrite, tag=知乎助手_去广告及体验增强, update-interval=86400, opt-parser=false, enabled=true
-http://rawgithub.jojo21.com/blackmatrix7/ios_rule_script/master/script/bilibili/bilibili_plus.qxrewrite, tag=哔哩_去广告, update-interval=86400, opt-parser=false, enabled=true
+https://raw.gitmirror.com/ddgksf2013/Cuttlefish/master/Rewrite/AdBlock/Bilibili.conf, tag=B站去广告+1080P高码率, update-interval=172800, opt-parser=false, enabled=false
+https://raw.gitmirror.com/ddgksf2013/Cuttlefish/master/Applet/QuanX.conf, tag=微信小程序去广告, update-interval=172800, opt-parser=false, enabled=false
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/YouTubeAds.conf, tag=油管广告, update-interval=172800, opt-parser=false, enabled=false
+https://raw.gitmirror.com/blackmatrix7/ios_rule_script/master/script/smzdm/smzdm_remove_ads.sgmodule, tag=值买广告, update-interval=172800, opt-parser=true, enabled=true
+https://raw.gitmirror.com/blackmatrix7/ios_rule_script/master/script/zhihu/zhihu_plus.qxrewrite, tag=知乎助手_去广告及体验增强, update-interval=86400, opt-parser=false, enabled=true
+https://raw.gitmirror.com/blackmatrix7/ios_rule_script/master/script/bilibili/bilibili_plus.qxrewrite, tag=哔哩_去广告, update-interval=86400, opt-parser=false, enabled=true
 
 #>>>>>>>>>>>通用去广告
-;http://rawgithub.jojo21.com/blackmatrix7/ios_rule_script/master/rewrite/QuantumultX/Advertising/Advertising.conf, tag=去广告重写@blackmatrix7, update-interval=86400, opt-parser=false, enabled=false
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Quantumult/Rewrite/General.conf, tag=神机重定向@DivineEngine, update-interval=86400, opt-parser=false, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/Advertising.conf, tag=神机去广告, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/AdvertisingPlus.conf, tag=神机去广告Plus, update-interval=86400, opt-parser=true, enabled=true
+;https://raw.gitmirror.com/blackmatrix7/ios_rule_script/master/rewrite/QuantumultX/Advertising/Advertising.conf, tag=去广告重写@blackmatrix7, update-interval=86400, opt-parser=false, enabled=false
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Quantumult/Rewrite/General.conf, tag=神机重定向@DivineEngine, update-interval=86400, opt-parser=false, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/Advertising.conf, tag=神机去广告, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/AdvertisingPlus.conf, tag=神机去广告Plus, update-interval=86400, opt-parser=true, enabled=true
 
 #>>>>>>>>>>>网页优化
 https://github.com/ddgksf2013/Rewrite/raw/master/Html/WebAdBlock.conf, tag=影视网站去广告@ddgksf2013, update-interval=86400, opt-parser=false, enabled=true
@@ -128,13 +128,13 @@ https://github.com/ddgksf2013/Rewrite/raw/master/Html/Q-Search.conf, tag=Safari
 https://github.com/ddgksf2013/Rewrite/raw/master/Html/Douban.conf, tag=豆瓣电影网页快捷跳转@ddgksf2013, update-interval=86400, opt-parser=false, enabled=true
 
 #>>>>>>>>>>>未启用的重写
-http://rawgithub.jojo21.com/Orz-3/QuantumultX/master/JD_TB_price.conf, tag=比价脚本@Orz-3, update-interval=86400, opt-parser=false, enabled=false
+https://raw.gitmirror.com/Orz-3/QuantumultX/master/JD_TB_price.conf, tag=比价脚本@Orz-3, update-interval=86400, opt-parser=false, enabled=false
 https://github.com/ddgksf2013/Rewrite/raw/master/Function/BilibiliAutoRegion.conf, tag=B站换区[不会配置boxjs请勿勾选]@NobyDa, update-interval=86400, opt-parser=false, enabled=false
-http://rawgithub.jojo21.com/id77/QuantumultX/master/rewrite/Youtube_CC.conf#out=Hant, tag=油管字幕翻译@id77, update-interval=86400, opt-parser=false, enabled=false
+https://raw.gitmirror.com/id77/QuantumultX/master/rewrite/Youtube_CC.conf#out=Hant, tag=油管字幕翻译@id77, update-interval=86400, opt-parser=false, enabled=false
 
 
-http://rawgithub.jojo21.com/NobyDa/Script/master/TestFlight/TestFlightAccount.js, tag=TF测试共享, update-interval=172800, opt-parser=true, enabled=false
-http://rawgithub.jojo21.com/Peng-YM/Sub-Store/master/config/QX.snippet, tag=订阅管理, update-interval=172800, opt-parser=false, enabled=false
+https://raw.gitmirror.com/NobyDa/Script/master/TestFlight/TestFlightAccount.js, tag=TF测试共享, update-interval=172800, opt-parser=true, enabled=false
+https://raw.gitmirror.com/Peng-YM/Sub-Store/master/config/QX.snippet, tag=订阅管理, update-interval=172800, opt-parser=false, enabled=false
 
 
 http://ox.xmkczs.com/quantumultX/ioshkj.conf, tag=黑科技车计划, update-interval=86400, opt-parser=false, enabled=false
@@ -145,7 +145,7 @@ http://ox.xmkczs.com/quantumultX/ioshkj.conf, tag=黑科技车计划, update-int
 [server_remote]
 
 # 远程机场订阅加这里
-http://rawgithub.jojo21.com/Jsnzkpg/Jsnzkpg/Jsnzkpg/Jsnzkpg#emoji=2, tag=Jsnzkpg, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/Jsnzkpg/Jsnzkpg/Jsnzkpg/Jsnzkpg#emoji=2, tag=Jsnzkpg, update-interval=86400, opt-parser=true, enabled=true
 http://qx.xmkczs.com/quanxsssss.php, tag=最新自动更新订阅①, update-interval=172800, opt-parser=true, enabled=true
 http://qx.xmkczs.com/quanxssss.php, tag=最新自动更新订阅②, update-interval=172800, opt-parser=true, enabled=true
 
@@ -190,43 +190,43 @@ server=/*.xiaomi.com/119.29.29.29
 
 [policy]
 
-static=网易云音乐, direct, img-url=http://rawgithub.jojo21.com/Koolson/Qure/master/IconSet/Color/Netease_Music_Unlock.png
-static=全球加速, 🚀节点选择, 自动选择, direct, 香港节点, 台湾节点, 日本节点, 狮城节点, 美国节点, proxy, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/Global.png
-static=苹果服务, direct, 香港节点, 台湾节点, 美国节点, 日本节点, 狮城节点, proxy, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/Apple.png
-static=哔哩哔哩, direct, 香港节点, 台湾节点, img-url=http://rawgithub.jojo21.com/Koolson/Qure/master/IconSet/Color/bilibili.png
-static=国际媒体, 🚀节点选择, 香港节点, 台湾节点, 日本节点, 美国节点, 狮城节点, proxy, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/Streaming.png
-static=兜底分流, 全球加速, direct, 香港节点, 台湾节点, 日本节点, 狮城节点, 美国节点, proxy, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/Final.png
+static=网易云音乐, direct, img-url=https://raw.gitmirror.com/Koolson/Qure/master/IconSet/Color/Netease_Music_Unlock.png
+static=全球加速, 🚀节点选择, 自动选择, direct, 香港节点, 台湾节点, 日本节点, 狮城节点, 美国节点, proxy, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/Global.png
+static=苹果服务, direct, 香港节点, 台湾节点, 美国节点, 日本节点, 狮城节点, proxy, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/Apple.png
+static=哔哩哔哩, direct, 香港节点, 台湾节点, img-url=https://raw.gitmirror.com/Koolson/Qure/master/IconSet/Color/bilibili.png
+static=国际媒体, 🚀节点选择, 香港节点, 台湾节点, 日本节点, 美国节点, 狮城节点, proxy, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/Streaming.png
+static=兜底分流, 全球加速, direct, 香港节点, 台湾节点, 日本节点, 狮城节点, 美国节点, proxy, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/Final.png
 
 #默认设置10分钟测速一次
-url-latency-benchmark=自动选择, server-tag-regex=^(.(?!(网易|墨鱼)))*$, check-interval=600, tolerance=0, img-url=http://rawgithub.jojo21.com/Koolson/Qure/master/IconSet/Color/Auto.png
-url-latency-benchmark=香港节点, server-tag-regex=(?=.*(港|HK|(?i)Hong))^((?!(台|日|韩|新|美)).)*$, check-interval=600, tolerance=0, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/HK.png
-url-latency-benchmark=台湾节点, server-tag-regex=(?=.*(台|TW|(?i)Taiwan))^((?!(港|日|韩|新|美)).)*$, check-interval=600, tolerance=0, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/TW.png
-url-latency-benchmark=日本节点, server-tag-regex=(?=.*(日|JP|(?i)Japan))^((?!(港|台|韩|新|美)).)*$, check-interval=600, tolerance=0, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/JP.png
-url-latency-benchmark=狮城节点, server-tag-regex=(?=.*(新|狮|獅|SG|(?i)Singapore))^((?!(港|台|日|韩|美)).)*$, check-interval=600, tolerance=0, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/SG.png
-url-latency-benchmark=美国节点, server-tag-regex=(?=.*(美|US|(?i)States|American))^((?!(港|台|日|韩|新)).)*$, check-interval=600, tolerance=0, img-url=http://rawgithub.jojo21.com/Orz-3/mini/master/Color/US.png
+url-latency-benchmark=自动选择, server-tag-regex=^(.(?!(网易|墨鱼)))*$, check-interval=600, tolerance=0, img-url=https://raw.gitmirror.com/Koolson/Qure/master/IconSet/Color/Auto.png
+url-latency-benchmark=香港节点, server-tag-regex=(?=.*(港|HK|(?i)Hong))^((?!(台|日|韩|新|美)).)*$, check-interval=600, tolerance=0, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/HK.png
+url-latency-benchmark=台湾节点, server-tag-regex=(?=.*(台|TW|(?i)Taiwan))^((?!(港|日|韩|新|美)).)*$, check-interval=600, tolerance=0, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/TW.png
+url-latency-benchmark=日本节点, server-tag-regex=(?=.*(日|JP|(?i)Japan))^((?!(港|台|韩|新|美)).)*$, check-interval=600, tolerance=0, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/JP.png
+url-latency-benchmark=狮城节点, server-tag-regex=(?=.*(新|狮|獅|SG|(?i)Singapore))^((?!(港|台|日|韩|美)).)*$, check-interval=600, tolerance=0, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/SG.png
+url-latency-benchmark=美国节点, server-tag-regex=(?=.*(美|US|(?i)States|American))^((?!(港|台|日|韩|新)).)*$, check-interval=600, tolerance=0, img-url=https://raw.gitmirror.com/Orz-3/mini/master/Color/US.png
 
 
 [filter_remote]
-http://rawgithub.jojo21.com/nessmonster71/UnblockNeteaseMusicQx/master/UnblockMusic.list, tag=🎸解锁网易云音乐, force-policy=网易云音乐, update-interval=172800, opt-parser=false, enabled=true
-# http://rawgithub.jojo21.com/zqzess/rule_for_quantumultX/master/QuantumultX/rules/AppleIOSUpdate.list, force-policy=AppleIOSUpdate,tag=屏蔽系统更新,enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Unbreak.list, tag=规则修正, force-policy=direct, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/Advertising.list, tag=广告拦截, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/NobyDa/Script/master/Surge/AdRule.list, tag=广告拦截, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/Hijacking.list, tag=运营劫持, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/Privacy.list, tag=隐私保护, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Video/TikTok.list, tag=海外抖音, force-policy=全球加速, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/HK.list, tag=流媒体HK, force-policy=香港节点, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/TW.list, tag=流媒体TW, force-policy=台湾节点, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/JP.list, tag=流媒体JP, force-policy=日本节点, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/US.list, tag=流媒体US, force-policy=美国节点, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Streaming.list, tag=国际媒体, force-policy=国际媒体, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/StreamingSE.list, tag=港台番剧, force-policy=港台番剧, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Global.list, tag=全球加速, force-policy=全球加速, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Apple/AppStore.list, tag=苹果服务, force-policy=苹果服务, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Apple/AppStoreConnect.list, tag=苹果服务, force-policy=苹果服务, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Apple/TestFlight.list, tag=Testflight, force-policy=苹果服务, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/China.list, tag=国内网站, force-policy=direct, update-interval=86400, opt-parser=true, enabled=true
-http://rawgithub.jojo21.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/ChinaIP.list, tag=ChinaIP, force-policy=direct, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/nessmonster71/UnblockNeteaseMusicQx/master/UnblockMusic.list, tag=🎸解锁网易云音乐, force-policy=网易云音乐, update-interval=172800, opt-parser=false, enabled=true
+# https://raw.gitmirror.com/zqzess/rule_for_quantumultX/master/QuantumultX/rules/AppleIOSUpdate.list, force-policy=AppleIOSUpdate,tag=屏蔽系统更新,enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Unbreak.list, tag=规则修正, force-policy=direct, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/Advertising.list, tag=广告拦截, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/NobyDa/Script/master/Surge/AdRule.list, tag=广告拦截, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/Hijacking.list, tag=运营劫持, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/Privacy.list, tag=隐私保护, force-policy=reject, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Video/TikTok.list, tag=海外抖音, force-policy=全球加速, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/HK.list, tag=流媒体HK, force-policy=香港节点, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/TW.list, tag=流媒体TW, force-policy=台湾节点, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/JP.list, tag=流媒体JP, force-policy=日本节点, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Region/US.list, tag=流媒体US, force-policy=美国节点, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Streaming.list, tag=国际媒体, force-policy=国际媒体, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/StreamingSE.list, tag=港台番剧, force-policy=港台番剧, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Global.list, tag=全球加速, force-policy=全球加速, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Apple/AppStore.list, tag=苹果服务, force-policy=苹果服务, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Apple/AppStoreConnect.list, tag=苹果服务, force-policy=苹果服务, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Apple/TestFlight.list, tag=Testflight, force-policy=苹果服务, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/China.list, tag=国内网站, force-policy=direct, update-interval=86400, opt-parser=true, enabled=true
+https://raw.gitmirror.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/ChinaIP.list, tag=ChinaIP, force-policy=direct, update-interval=86400, opt-parser=true, enabled=true
 
 
 [filter_local]
@@ -350,7 +350,7 @@ final, 兜底分流
 
 # > Boxjs设置,改为使用http backend方式,访问地址改为http://127.0.0.1:9999,更新配置后请长按风车-更新,然后重启代理
 # > BoxJs相关教程参考 https://chavyleung.gitbook.io/boxjs/
-http://rawgithub.jojo21.com/chavyleung/scripts/master/chavy.box.js, host=boxjs.com, tag=BoxJS, path=^/, enabled=false, img-url=http://rawgithub.jojo21.com/Orz-3/task/master/box.png,
+https://raw.gitmirror.com/chavyleung/scripts/master/chavy.box.js, host=boxjs.com, tag=BoxJS, path=^/, enabled=false, img-url=https://raw.gitmirror.com/Orz-3/task/master/box.png,
 
 
 

+ 402 - 0
Scripts/util/md5.js

@@ -0,0 +1,402 @@
+/*
+ * JavaScript MD5
+ * https://github.com/blueimp/JavaScript-MD5
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * https://opensource.org/licenses/MIT
+ *
+ * Based on
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+/* global define */
+
+/* eslint-disable strict */
+
+;(function ($) {
+  'use strict'
+
+  /**
+   * Add integers, wrapping at 2^32.
+   * This uses 16-bit operations internally to work around bugs in interpreters.
+   *
+   * @param {number} x First integer
+   * @param {number} y Second integer
+   * @returns {number} Sum
+   */
+  function safeAdd(x, y) {
+    var lsw = (x & 0xffff) + (y & 0xffff)
+    var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
+    return (msw << 16) | (lsw & 0xffff)
+  }
+
+  /**
+   * Bitwise rotate a 32-bit number to the left.
+   *
+   * @param {number} num 32-bit number
+   * @param {number} cnt Rotation count
+   * @returns {number} Rotated number
+   */
+  function bitRotateLeft(num, cnt) {
+    return (num << cnt) | (num >>> (32 - cnt))
+  }
+
+  /**
+   * Basic operation the algorithm uses.
+   *
+   * @param {number} q q
+   * @param {number} a a
+   * @param {number} b b
+   * @param {number} x x
+   * @param {number} s s
+   * @param {number} t t
+   * @returns {number} Result
+   */
+  function md5cmn(q, a, b, x, s, t) {
+    return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
+  }
+  /**
+   * Basic operation the algorithm uses.
+   *
+   * @param {number} a a
+   * @param {number} b b
+   * @param {number} c c
+   * @param {number} d d
+   * @param {number} x x
+   * @param {number} s s
+   * @param {number} t t
+   * @returns {number} Result
+   */
+  function md5ff(a, b, c, d, x, s, t) {
+    return md5cmn((b & c) | (~b & d), a, b, x, s, t)
+  }
+  /**
+   * Basic operation the algorithm uses.
+   *
+   * @param {number} a a
+   * @param {number} b b
+   * @param {number} c c
+   * @param {number} d d
+   * @param {number} x x
+   * @param {number} s s
+   * @param {number} t t
+   * @returns {number} Result
+   */
+  function md5gg(a, b, c, d, x, s, t) {
+    return md5cmn((b & d) | (c & ~d), a, b, x, s, t)
+  }
+  /**
+   * Basic operation the algorithm uses.
+   *
+   * @param {number} a a
+   * @param {number} b b
+   * @param {number} c c
+   * @param {number} d d
+   * @param {number} x x
+   * @param {number} s s
+   * @param {number} t t
+   * @returns {number} Result
+   */
+  function md5hh(a, b, c, d, x, s, t) {
+    return md5cmn(b ^ c ^ d, a, b, x, s, t)
+  }
+  /**
+   * Basic operation the algorithm uses.
+   *
+   * @param {number} a a
+   * @param {number} b b
+   * @param {number} c c
+   * @param {number} d d
+   * @param {number} x x
+   * @param {number} s s
+   * @param {number} t t
+   * @returns {number} Result
+   */
+  function md5ii(a, b, c, d, x, s, t) {
+    return md5cmn(c ^ (b | ~d), a, b, x, s, t)
+  }
+
+  /**
+   * Calculate the MD5 of an array of little-endian words, and a bit length.
+   *
+   * @param {Array} x Array of little-endian words
+   * @param {number} len Bit length
+   * @returns {Array<number>} MD5 Array
+   */
+  function binlMD5(x, len) {
+    /* append padding */
+    x[len >> 5] |= 0x80 << len % 32
+    x[(((len + 64) >>> 9) << 4) + 14] = len
+
+    var i
+    var olda
+    var oldb
+    var oldc
+    var oldd
+    var a = 1732584193
+    var b = -271733879
+    var c = -1732584194
+    var d = 271733878
+
+    for (i = 0; i < x.length; i += 16) {
+      olda = a
+      oldb = b
+      oldc = c
+      oldd = d
+
+      a = md5ff(a, b, c, d, x[i], 7, -680876936)
+      d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
+      c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
+      b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
+      a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
+      d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
+      c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
+      b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
+      a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
+      d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
+      c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
+      b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
+      a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
+      d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
+      c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
+      b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)
+
+      a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
+      d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
+      c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
+      b = md5gg(b, c, d, a, x[i], 20, -373897302)
+      a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
+      d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
+      c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
+      b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
+      a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
+      d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
+      c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
+      b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
+      a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
+      d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
+      c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
+      b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)
+
+      a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
+      d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
+      c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
+      b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
+      a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
+      d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
+      c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
+      b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
+      a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
+      d = md5hh(d, a, b, c, x[i], 11, -358537222)
+      c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
+      b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
+      a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
+      d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
+      c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
+      b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)
+
+      a = md5ii(a, b, c, d, x[i], 6, -198630844)
+      d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
+      c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
+      b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
+      a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
+      d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
+      c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
+      b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
+      a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
+      d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
+      c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
+      b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
+      a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
+      d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
+      c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
+      b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)
+
+      a = safeAdd(a, olda)
+      b = safeAdd(b, oldb)
+      c = safeAdd(c, oldc)
+      d = safeAdd(d, oldd)
+    }
+    return [a, b, c, d]
+  }
+
+  /**
+   * Convert an array of little-endian words to a string
+   *
+   * @param {Array<number>} input MD5 Array
+   * @returns {string} MD5 string
+   */
+  function binl2rstr(input) {
+    var i
+    var output = ''
+    var length32 = input.length * 32
+    for (i = 0; i < length32; i += 8) {
+      output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff)
+    }
+    return output
+  }
+
+  /**
+   * Convert a raw string to an array of little-endian words
+   * Characters >255 have their high-byte silently ignored.
+   *
+   * @param {string} input Raw input string
+   * @returns {Array<number>} Array of little-endian words
+   */
+  function rstr2binl(input) {
+    var i
+    var output = []
+    output[(input.length >> 2) - 1] = undefined
+    for (i = 0; i < output.length; i += 1) {
+      output[i] = 0
+    }
+    var length8 = input.length * 8
+    for (i = 0; i < length8; i += 8) {
+      output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32
+    }
+    return output
+  }
+
+  /**
+   * Calculate the MD5 of a raw string
+   *
+   * @param {string} s Input string
+   * @returns {string} Raw MD5 string
+   */
+  function rstrMD5(s) {
+    return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
+  }
+
+  /**
+   * Calculates the HMAC-MD5 of a key and some data (raw strings)
+   *
+   * @param {string} key HMAC key
+   * @param {string} data Raw input string
+   * @returns {string} Raw MD5 string
+   */
+  function rstrHMACMD5(key, data) {
+    var i
+    var bkey = rstr2binl(key)
+    var ipad = []
+    var opad = []
+    var hash
+    ipad[15] = opad[15] = undefined
+    if (bkey.length > 16) {
+      bkey = binlMD5(bkey, key.length * 8)
+    }
+    for (i = 0; i < 16; i += 1) {
+      ipad[i] = bkey[i] ^ 0x36363636
+      opad[i] = bkey[i] ^ 0x5c5c5c5c
+    }
+    hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
+    return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
+  }
+
+  /**
+   * Convert a raw string to a hex string
+   *
+   * @param {string} input Raw input string
+   * @returns {string} Hex encoded string
+   */
+  function rstr2hex(input) {
+    var hexTab = '0123456789abcdef'
+    var output = ''
+    var x
+    var i
+    for (i = 0; i < input.length; i += 1) {
+      x = input.charCodeAt(i)
+      output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)
+    }
+    return output
+  }
+
+  /**
+   * Encode a string as UTF-8
+   *
+   * @param {string} input Input string
+   * @returns {string} UTF8 string
+   */
+  function str2rstrUTF8(input) {
+    return unescape(encodeURIComponent(input))
+  }
+
+  /**
+   * Encodes input string as raw MD5 string
+   *
+   * @param {string} s Input string
+   * @returns {string} Raw MD5 string
+   */
+  function rawMD5(s) {
+    return rstrMD5(str2rstrUTF8(s))
+  }
+  /**
+   * Encodes input string as Hex encoded string
+   *
+   * @param {string} s Input string
+   * @returns {string} Hex encoded string
+   */
+  function hexMD5(s) {
+    return rstr2hex(rawMD5(s))
+  }
+  /**
+   * Calculates the raw HMAC-MD5 for the given key and data
+   *
+   * @param {string} k HMAC key
+   * @param {string} d Input string
+   * @returns {string} Raw MD5 string
+   */
+  function rawHMACMD5(k, d) {
+    return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
+  }
+  /**
+   * Calculates the Hex encoded HMAC-MD5 for the given key and data
+   *
+   * @param {string} k HMAC key
+   * @param {string} d Input string
+   * @returns {string} Raw MD5 string
+   */
+  function hexHMACMD5(k, d) {
+    return rstr2hex(rawHMACMD5(k, d))
+  }
+
+  /**
+   * Calculates MD5 value for a given string.
+   * If a key is provided, calculates the HMAC-MD5 value.
+   * Returns a Hex encoded string unless the raw argument is given.
+   *
+   * @param {string} string Input string
+   * @param {string} [key] HMAC key
+   * @param {boolean} [raw] Raw output switch
+   * @returns {string} MD5 output
+   */
+  function md5(string, key, raw) {
+    if (!key) {
+      if (!raw) {
+        return hexMD5(string)
+      }
+      return rawMD5(string)
+    }
+    if (!raw) {
+      return hexHMACMD5(key, string)
+    }
+    return rawHMACMD5(key, string)
+  }
+
+  if (typeof define === 'function' && define.amd) {
+    define(function () {
+      return md5
+    })
+  } else if (typeof module === 'object' && module.exports) {
+    module.exports = md5
+  } else {
+    $.md5 = md5
+  }
+})(this)

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
Scripts/util/md5.min.js


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff