@mckyby 绝活
W
WetlWang0625 发布的帖子
-
自动登录配置使用MD5作为密码
在使用的过程中注意到某些情况下Mirai会明文发送密码(当然也有可能是我分析错数据包了),同时也为了防备意外的攻击,
如果真的发生了,那真的是遇见神佬了,准备跑路吧。因此尝试了一下
Autologin.yml
中使用MD5
类型的密码,虽然防护效果不明,但至少可以降低明文密码被盗取后遭到撞库攻击的概率,毕竟能做到每个账号单独设置不同密码的人还是少数。Autologin.yml
配置文件与密码相关的配置如下password: # 密码种类, 可选 PLAIN 或 MD5 kind: PLAIN # 密码内容, PLAIN 时为密码文本, MD5 时为 16 进制 value: 123
由提示可知密码类型
kind
为MD5时在value
中需填入由密码明文转换而来的16位MD5
。但是在测试过程中,使用16位MD5
会登录失败2024-08-03 20:06:49 V/Bot.**********: Event: AutoLoginEvent.Failure(bot=**********, protocol=ANDROID_PAD, cause=net.mamoe.mirai.network.BotAuthorizationException: BotAuthorization(BotAuthorization.byPassword(<ERASED>)) threw an exception during authorization process. See cause below.) 2024-08-03 20:06:49 I/Bot.********: Bot cancelled: Bot closed
思考一阵子之后我想起曾经在某已经忘了名子的论坛里见过这样的技术贴,QQ2021是使用的32位
MD5
,并且是经过Base64
加密的,但是配置提示里已经说了是使用MD5
的,所以在此处直接使用32位MD5
。不出意外登录成功。下面是修改过的
Autologin.yml
,供大家参考accounts: - # 账号, 现只支持 QQ 数字账号 account: 123456 password: # 密码种类, 可选 PLAIN 或 MD5 kind: MD5 # 密码内容, PLAIN 时为密码文本, MD5 时为 32 位 16 进制 value: 202CB962AC59075B964B07152D234B70 # 账号配置. 可用配置列表 (注意大小写): # protocol: ANDROID_PHONE / ANDROID_PAD / ANDROID_WATCH / MACOS / IPAD # device: device.json # enable: true # heartbeatStrategy: STAT_HB / REGISTER / NONE configuration: protocol: ANDROID_PHONE device: device.json enable: false heartbeatStrategy: STAT_HB
配置时还要注意选择的protocol
。至于MD5
生成工具,网上一搜一大把,这里就不贴了。