腾讯webqq最新密码加密算法,hash算法

经常在做webqq机器人,但是最头痛的问题就是腾讯经常加一些验证串来防止robot,现在共享出最新的腾讯密码加密算法和hash

算法

hash算法

def webqq_hash(i, a):
    if isinstance(i, (str, unicode)):
        i = int(i)
    class b:
        def __init__(self, _b, i):
            self.s = _b or 0
            self.e = i or 0

    r = [i >> 24 & 255, i >> 16 & 255, i >> 8 & 255, i & 255]

    j = [ord(_a) for _a in a]

    e = [b(0, len(j) - 1)]
    while len(e) > 0:
        c = e.pop()
        if not (c.s >= c.e or c.s < 0 or c.e > len(j)):
            if c.s+1 == c.e:
                if (j[c.s] > j[c.e]) :
                    l = j[c.s]
                    j[c.s] = j[c.e]
                    j[c.e] = l
            else:
                l = c.s
                J = c.e
                f=j[c.s]
                while c.s < c.e:
                    while c.s < c.e and j[c.e]>=f:
                        c.e -= 1
                        r[0] = r[0] + 3&255

                    if c.s < c.e:
                        j[c.s] = j[c.e]
                        c.s += 1
                        r[1] = r[1] * 13 + 43 & 255

                    while c.s < c.e and j[c.s] <= f:
                        c.s += 1
                        r[2] = r[2] - 3 & 255

                    if c.s < c.e:
                        j[c.e] = j[c.s]
                        c.e -= 1
                        r[3] = (r[0] ^ r[1]^r[2]^r[3]+1) & 255
                j[c.s] = f
                e.append(b(l, c.s-1))
                e.append(b(c.s + 1, J))
    j = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A",
         "B", "C", "D", "E", "F"]
    e = ""
    for c in range(len(r)):
        e += j[r[c]>>4&15]
        e += j[r[c]&15]

    return e

def newhash(b,j):
    a=j+"password error"
    i=""
    E=[]
    while True:
        if len(i)<=len(a):
            i+=b
            if len(i)==len(a):
                break
        else:
            i=i[0:len(a)]
            break
    for c in range(len(i)):
        E.append(ord(str(i[c]))^ord(str(a[c])))
    a = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
    i = ""
    for c in range(len(E)):
        i+=a[E[c] >> 4 & 15]
        i+= a[E[c] & 15]
    return i

这个算法加密出的串是获取好友列表和群列表都需要的

密码加密算法

#md5加密函数
    def PCMd5(self,s):
        h=hashlib.md5()
        h.update(s)
        return h.hexdigest()
    #16进制转字符
    def hex2asc(self,s):
        _str="".join(s.split(r'\x'))
        length=len(_str)
        data=''
        for i in range(0,length,2):
            data+=chr(int(_str[i:i+2],16))
        return data
 #密码加密函数
    '''
    v1 是 ptui_checkVC('0','!LJV','\x00\x00\x00\x00\x00\xa1\x92\x12') 第一个参数
    V2 是 ptui_checkVC('0','!LJV','\x00\x00\x00\x00\x00\xa1\x92\x12') 第二个
    '''
    def PasswordSecret(self,password,v1,v2,md5=True):
        if md5==True:
            password=self.PCMd5(password).upper()
        length=len(password)
        temp=''
        for i in range(0,length,2):
            temp+=r'\x'+password[i:i+2]
        return self.PCMd5(self.PCMd5(self.hex2asc(temp)+self.hex2asc(v2)).upper()+v1).upper()

腾讯webqq最新密码加密算法,hash算法

时间: 2024-10-29 18:37:25

腾讯webqq最新密码加密算法,hash算法的相关文章

腾讯webqq最新password加密算法,hash算法

常常在做webqq机器人,可是最头痛的问题就是腾讯常常加一些验证串来防止robot,如今共享出最新的腾讯password加密算法和hash 算法 hash算法 def webqq_hash(i, a): if isinstance(i, (str, unicode)): i = int(i) class b: def __init__(self, _b, i): self.s = _b or 0 self.e = i or 0 r = [i >> 24 & 255, i >>

webqq 获得好友列表hash算法 获得最新hash的方法

webqq获得好友列表的hash算法,大约每个月中旬会变动一次.知道怎么获得他就可以了. js文件路径 http://web.qstatic.com/webqqpic/pubapps/0/50/eqq.all.js 加密算法为 P=function(b,i),有时候是 P=function(b,j) 直接打开这个文件后搜索P=function,有两个参数的就是. 把函数体拷贝下来后百度 js格式化工具,把内容放进去,格式化一下. 下面是2014年6月17日时的hash函数: P=function

1.3.1 区块链中的加密算法——Hash算法(更新)

为了为保证存储于区块链中的信息的安全与完整,区块链中使用了包含密码哈希函数和椭圆曲线公钥密码技术在内的大量的现代密码学技术,同时,这些密码学技术也被用于设计基于工作量证明的共识算法并识别用户. 在前边的文章中已经系统的讲述了密码学中的哈希算法,在本节,将会给大家介绍Hash算法在区块链中的应用! 概念回顾: 哈希函数:是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的二进制串,其输出值称为哈希值,也称为散列值. 以哈希函数为基础构造的哈希算法,在现代密码学中扮演着重要的角色

shiro 自定义 密码校验hash算法

Shiro 自定义密码校验: 两步: 1.自定义类MyCredentialsMatcher实现CredentialsMatcher接口 2.实现boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info)方法 第一个参数是登陆的用户 第二个一般是数据库里面的用户( 也就是 protected AuthenticationInfo doGetAuthenticationInfo()方法返回的实体和凭据

浅谈HASH算法与CSDN密码泄漏事件

http://www.cnbeta.com/articles/166531.htm 一.HASH算法不是加密算法 HASH算法是一种消息摘要算法,不是一种加密算法,但由于其单向运算,具有一定的不可逆性,成为加密算法中的一个构成部分,完整的加密机制不能仅依赖HASH算法. 二.HASH算法的碰撞现象HASH算法可以理解为将任意的信息经过提炼后,成为一个定长的字符串.世界上的信息数量为无穷大,所以定长的字符串不可能表达所有的摘要,因此存在所谓的“碰撞”,即2个同样的信息源摘要是一样的. 2004年山

常见hash算法的原理(转)

常见hash算法的原理 散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法.顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙. 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列函数,存放记录的数组叫做散列表. 比如我们存储70个元素,但我们可能为这70个元素申请了100个元素的空间.7

常见hash算法的原理

转自:http://blog.csdn.net/zxycode007/article/details/6999984 散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法.顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙. 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列函数,存放记录的

Hash算法总结

1. Hash是什么,它的作用 先举个例子.我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志.也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造.最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显然,这样做并不实际.而指纹看上去是一种不错的选择,虽然一些专业组织仍然可以模拟某个人的指纹,但这种代价实在太高了. 而对于在互联网世界里传送的文件来说,如何标志一个文件的身份同样重要.比如说我们下载一个文件,文

Yii 2 —— 密码加密算法

1.1  密码加密算法 参考文档: 1.更新后的 PHP: 现代 PHP 中的密码安全性: 2.http://php.net/manual/zh/function.password-hash.php 3.http://php.net/manual/zh/function.password-verify.php 1.1.1  user表结构 Yii 2默认用user表保存账号信息,包括用户的密码,user表结构如下: id username 账号 auth_key password_hash 保存