first commit
This commit is contained in:
@@ -0,0 +1,300 @@
|
||||
package android
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"time"
|
||||
"xiawan/wx/clientsdk/android/mmproto"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
)
|
||||
|
||||
// iphone生成wcstf, 使用07加密
|
||||
func IphoneWcstf(Username string) *mmproto.ZTData {
|
||||
curtime := uint64(time.Now().UnixNano() / 1e6)
|
||||
contentlen := len(Username)
|
||||
|
||||
var ct []uint64
|
||||
ut := curtime
|
||||
for i := 0; i < contentlen; i++ {
|
||||
ut += uint64(rand.Intn(10000))
|
||||
ct = append(ct, ut)
|
||||
}
|
||||
ccd := &mmproto.Ccd1{
|
||||
StartTime: &curtime,
|
||||
CheckTime: &curtime,
|
||||
Count: proto.Uint32(uint32(contentlen)),
|
||||
EndTime: ct,
|
||||
}
|
||||
|
||||
pb, _ := proto.Marshal(ccd)
|
||||
|
||||
// Zero: 03加密改06加密
|
||||
//var b bytes.Buffer
|
||||
//w := zlib.NewWriter(&b)
|
||||
//w.Write(pb)
|
||||
//w.Close()
|
||||
//
|
||||
//zt := new(ZT)
|
||||
//zt.Init()
|
||||
//encData := zt.Encrypt(b.Bytes())
|
||||
compressData := DoZlibCompress(pb)
|
||||
encData := SaeEncrypt07(compressData)
|
||||
|
||||
Ztdata := &mmproto.ZTData{
|
||||
Version: proto.String("00000007\x00"),
|
||||
Encrypted: proto.Uint32(1),
|
||||
Data: encData,
|
||||
TimeStamp: proto.Uint32(uint32(time.Now().Unix())),
|
||||
Optype: proto.Uint32(5),
|
||||
Uin: proto.Uint32(0),
|
||||
}
|
||||
// MS, _ := proto.Marshal(Ztdata)
|
||||
return Ztdata
|
||||
}
|
||||
|
||||
// iphone生成wcste, 使用07加密
|
||||
func IphoneWcste(A, B uint64) *mmproto.ZTData {
|
||||
|
||||
curtime := uint32(time.Now().Unix())
|
||||
curNanoTime := uint64(time.Now().UnixNano())
|
||||
|
||||
ccd := &mmproto.Ccd2{
|
||||
Checkid: proto.String("<LoginByID>"),
|
||||
StartTime: &curtime,
|
||||
CheckTime: &curtime,
|
||||
Count1: proto.Uint32(0),
|
||||
Count2: proto.Uint32(1),
|
||||
Count3: proto.Uint32(0),
|
||||
Const1: proto.Uint64(A),
|
||||
Const2: &curNanoTime,
|
||||
Const3: &curNanoTime,
|
||||
Const4: &curNanoTime,
|
||||
Const5: &curNanoTime,
|
||||
Const6: proto.Uint64(B),
|
||||
}
|
||||
|
||||
pb, _ := proto.Marshal(ccd)
|
||||
|
||||
// Zero: 03加密改06加密
|
||||
//var b bytes.Buffer
|
||||
//w := zlib.NewWriter(&b)
|
||||
//w.Write(pb)
|
||||
//w.Close()
|
||||
//
|
||||
//zt := new(ZT)
|
||||
//zt.Init()
|
||||
//encData := zt.Encrypt(b.Bytes())
|
||||
compressData := DoZlibCompress(pb)
|
||||
encData := SaeEncrypt07(compressData)
|
||||
|
||||
Ztdata := &mmproto.ZTData{
|
||||
Version: proto.String("00000007\x00"),
|
||||
Encrypted: proto.Uint32(1),
|
||||
Data: encData,
|
||||
TimeStamp: proto.Uint32(uint32(time.Now().Unix())),
|
||||
Optype: proto.Uint32(5),
|
||||
Uin: proto.Uint32(0),
|
||||
}
|
||||
|
||||
// MS, _ := proto.Marshal(Ztdata)
|
||||
return Ztdata
|
||||
}
|
||||
|
||||
// ipad生成wcstf, 使用03加密
|
||||
func IpadWcstf(Username string) []byte {
|
||||
curtime := uint64(time.Now().UnixNano() / 1e6)
|
||||
contentlen := len(Username)
|
||||
|
||||
var ct []uint64
|
||||
ut := curtime
|
||||
for i := 0; i < contentlen; i++ {
|
||||
ut += uint64(rand.Intn(10000))
|
||||
ct = append(ct, ut)
|
||||
}
|
||||
ccd := &mmproto.Ccd1{
|
||||
StartTime: &curtime,
|
||||
CheckTime: &curtime,
|
||||
Count: proto.Uint32(uint32(contentlen)),
|
||||
EndTime: ct,
|
||||
}
|
||||
|
||||
pb, _ := proto.Marshal(ccd)
|
||||
|
||||
// 压缩然后03加密
|
||||
compressData := DoZlibCompress(pb)
|
||||
zt := new(ZT)
|
||||
zt.Init()
|
||||
encData := zt.Encrypt(compressData)
|
||||
|
||||
Ztdata := &mmproto.ZTData{
|
||||
Version: proto.String("00000003\x00"),
|
||||
Encrypted: proto.Uint32(1),
|
||||
Data: encData,
|
||||
TimeStamp: proto.Uint32(uint32(time.Now().Unix())),
|
||||
Optype: proto.Uint32(5),
|
||||
Uin: proto.Uint32(0),
|
||||
}
|
||||
MS, _ := proto.Marshal(Ztdata)
|
||||
return MS
|
||||
}
|
||||
|
||||
// ipad生成wcste, 使用03加密
|
||||
func IpadWcste(A, B uint64) []byte {
|
||||
|
||||
curtime := uint32(time.Now().Unix())
|
||||
curNanoTime := uint64(time.Now().UnixNano())
|
||||
|
||||
ccd := &mmproto.Ccd2{
|
||||
Checkid: proto.String("<LoginByID>"),
|
||||
StartTime: &curtime,
|
||||
CheckTime: &curtime,
|
||||
Count1: proto.Uint32(0),
|
||||
Count2: proto.Uint32(1),
|
||||
Count3: proto.Uint32(0),
|
||||
Const1: proto.Uint64(A),
|
||||
Const2: &curNanoTime,
|
||||
Const3: &curNanoTime,
|
||||
Const4: &curNanoTime,
|
||||
Const5: &curNanoTime,
|
||||
Const6: proto.Uint64(B),
|
||||
}
|
||||
|
||||
pb, _ := proto.Marshal(ccd)
|
||||
|
||||
// 压缩然后03加密
|
||||
compressData := DoZlibCompress(pb)
|
||||
zt := new(ZT)
|
||||
zt.Init()
|
||||
encData := zt.Encrypt(compressData)
|
||||
|
||||
Ztdata := &mmproto.ZTData{
|
||||
Version: proto.String("00000003\x00"),
|
||||
Encrypted: proto.Uint32(1),
|
||||
Data: encData,
|
||||
TimeStamp: proto.Uint32(uint32(time.Now().Unix())),
|
||||
Optype: proto.Uint32(5),
|
||||
Uin: proto.Uint32(0),
|
||||
}
|
||||
|
||||
MS, _ := proto.Marshal(Ztdata)
|
||||
return MS
|
||||
}
|
||||
|
||||
// android生成wcstf, 使用01加密
|
||||
func AndroidWcstf(Username string) *mmproto.ZTData {
|
||||
curtime := uint64(time.Now().UnixNano() / 1e6)
|
||||
contentlen := len(Username)
|
||||
|
||||
var ct []uint64
|
||||
ut := curtime
|
||||
for i := 0; i < contentlen; i++ {
|
||||
ut += uint64(rand.Intn(10000))
|
||||
ct = append(ct, ut)
|
||||
}
|
||||
ccd := &mmproto.Ccd1{
|
||||
StartTime: &curtime,
|
||||
CheckTime: &curtime,
|
||||
Count: proto.Uint32(uint32(contentlen)),
|
||||
EndTime: ct,
|
||||
}
|
||||
|
||||
pb, _ := proto.Marshal(ccd)
|
||||
|
||||
// Zero: 03加密改06加密
|
||||
//var b bytes.Buffer
|
||||
//w := zlib.NewWriter(&b)
|
||||
//w.Write(pb)
|
||||
//w.Close()
|
||||
//
|
||||
//zt := new(ZT)
|
||||
//zt.Init()
|
||||
//encData := zt.Encrypt(b.Bytes())
|
||||
// compressData := DoZlibCompress(pb)
|
||||
// encData := SaeEncrypt01(compressData)
|
||||
compressData := DoZlibCompress(pb)
|
||||
encData := SaeEncrypt07(compressData)
|
||||
|
||||
Ztdata := &mmproto.ZTData{
|
||||
Version: proto.String("00000007\x00"),
|
||||
Encrypted: proto.Uint32(1),
|
||||
Data: encData,
|
||||
TimeStamp: proto.Uint32(uint32(time.Now().Unix())),
|
||||
Optype: proto.Uint32(5),
|
||||
Uin: proto.Uint32(0),
|
||||
}
|
||||
// MS, _ := proto.Marshal(Ztdata)
|
||||
// return MS
|
||||
return Ztdata
|
||||
}
|
||||
|
||||
// android生成wcste, 使用01加密
|
||||
func AndroidWcste(A, B uint64) *mmproto.ZTData {
|
||||
|
||||
curtime := uint32(time.Now().Unix())
|
||||
curNanoTime := uint64(time.Now().UnixNano())
|
||||
|
||||
ccd := &mmproto.Ccd2{
|
||||
Checkid: proto.String("<LoginByID>"),
|
||||
StartTime: &curtime,
|
||||
CheckTime: &curtime,
|
||||
Count1: proto.Uint32(0),
|
||||
Count2: proto.Uint32(1),
|
||||
Count3: proto.Uint32(0),
|
||||
Const1: proto.Uint64(A),
|
||||
Const2: &curNanoTime,
|
||||
Const3: &curNanoTime,
|
||||
Const4: &curNanoTime,
|
||||
Const5: &curNanoTime,
|
||||
Const6: proto.Uint64(B),
|
||||
}
|
||||
|
||||
pb, _ := proto.Marshal(ccd)
|
||||
|
||||
// compressData := DoZlibCompress(pb)
|
||||
// encData := SaeEncrypt01(compressData)
|
||||
compressData := DoZlibCompress(pb)
|
||||
encData := SaeEncrypt07(compressData)
|
||||
|
||||
Ztdata := &mmproto.ZTData{
|
||||
Version: proto.String("00000007\x00"),
|
||||
Encrypted: proto.Uint32(1),
|
||||
Data: encData,
|
||||
TimeStamp: proto.Uint32(uint32(time.Now().Unix())),
|
||||
Optype: proto.Uint32(5),
|
||||
Uin: proto.Uint32(0),
|
||||
}
|
||||
|
||||
// MS, _ := proto.Marshal(Ztdata)
|
||||
// return MS
|
||||
return Ztdata
|
||||
}
|
||||
|
||||
type AndroidDeviceInfo struct {
|
||||
Imei string
|
||||
AndriodId string
|
||||
PhoneSerial string
|
||||
WidevineDeviceID string
|
||||
WidevineProvisionID string
|
||||
AndriodFsId string
|
||||
AndriodBssId string
|
||||
AndriodSsId string
|
||||
WLanAddress string
|
||||
PackageSign string
|
||||
Androidversion string
|
||||
RadioVersion string
|
||||
Manufacturer string
|
||||
BuildID string
|
||||
BuildFP string
|
||||
BuildBoard string
|
||||
PhoneModel string
|
||||
Hardware string
|
||||
Features string
|
||||
WifiName string
|
||||
WifiFullName string
|
||||
KernelReleaseNumber string
|
||||
Arch string
|
||||
SfMD5 string
|
||||
SfArmMD5 string
|
||||
SfArm64MD5 string
|
||||
SbMD5 string
|
||||
}
|
||||
Reference in New Issue
Block a user