/// <summary> /// 初始化包体 /// </summary> protected override void PutBody() { var pic = new Bitmap(FileName); var width = pic.Size.Width; // 图片的宽度 var height = pic.Size.Height; // 图片的高度 var picBytes = ImageHelper.ImageToBytes(pic); var md5 = QQTea.MD5(picBytes); var data = new BinaryWriter(new MemoryStream()); data.Write(new byte[] { 0x01, 0x08, 0x01, 0x12 }); data.Write((byte)0x5A); data.Write((byte)0x08); data.Write(Util.HexStringToByteArray(Util.PB_toLength(User.QQ))); data.Write((byte)0x10); data.Write(Util.HexStringToByteArray(Util.PB_toLength(ToQQ))); data.BeWrite((ushort)0x1800); data.Write((byte)0x22); data.Write((byte)0x10); data.Write(md5); data.Write((byte)0x28); data.Write(Util.HexStringToByteArray(Util.PB_toLength(picBytes.Length))); data.Write((byte)0x32); data.Write((byte)0x1A); data.Write(new byte[] { 0x57, 0x00, 0x53, 0x00, 0x4E, 0x00, 0x53, 0x00, 0x4C, 0x00, 0x54, 0x00, 0x31, 0x00, 0x36, 0x00, 0x47, 0x00, 0x45, 0x00, 0x4F, 0x00, 0x5B, 0x00, 0x5F, 0x00 }); data.BeWrite((ushort)0x3801); data.BeWrite((ushort)0x4801); data.Write((byte)0x70); data.Write(Util.HexStringToByteArray(Util.PB_toLength(width))); data.Write((byte)0x78); data.Write(Util.HexStringToByteArray(Util.PB_toLength(height))); BodyWriter.Write(new byte[] { 0x00, 0x00, 0x00, 0x07 }); //数据长度 BodyWriter.BeWrite(data.BaseStream.Length); BodyWriter.Write(new byte[] { 0x08, 0x01, 0x12, 0x03, 0x98, 0x01 }); //数据 BodyWriter.Write(data.BaseStream.ToBytesArray()); }
/// <summary> /// 初始化包体 /// </summary> protected override void PutBody() { var pic = new Bitmap(FileName); var width = pic.Size.Width; // 图片的宽度 var height = pic.Size.Height; // 图片的高度 //var Md5 = Util.GetMD5ToGuidHashFromFile(fileName); var picBytes = ImageHelper.ImageToBytes(pic); var md5 = QQTea.MD5(picBytes); BodyWriter.Write(new byte[] { 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x5E, 0x08, 0x01, 0x12, 0x03, 0x98, 0x01, 0x01, 0x10, 0x01, 0x1A }); BodyWriter.Write((byte)0x5A); BodyWriter.Write((byte)0x08); BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(Group))); BodyWriter.Write((byte)0x10); BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(User.QQ))); BodyWriter.BeWrite((ushort)0x1800); BodyWriter.Write((byte)0x22); BodyWriter.Write((byte)0x10); BodyWriter.Write(md5); BodyWriter.Write((byte)0x28); BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(picBytes.Length))); //TODO: BodyWriter.Write((byte)0x32); BodyWriter.Write((byte)0x1A); BodyWriter.Write(new byte[] { 0x37, 0x00, 0x4D, 0x00, 0x32, 0x00, 0x25, 0x00, 0x4C, 0x00, 0x31, 0x00, 0x56, 0x00, 0x32, 0x00, 0x7B, 0x00, 0x39, 0x00, 0x30, 0x00, 0x29, 0x00, 0x52, 0x00 }); BodyWriter.BeWrite((ushort)0x3801); BodyWriter.BeWrite((ushort)0x4801); BodyWriter.Write((byte)0x50); BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(width))); //TODO: BodyWriter.Write((byte)0x58); BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(height))); //TODO: BodyWriter.BeWrite((ushort)0x6004); BodyWriter.BeWrite((ushort)0x6A05); BodyWriter.Write(new byte[] { 0x32, 0x36, 0x36, 0x35, 0x36 }); BodyWriter.BeWrite((ushort)0x7000); BodyWriter.BeWrite((ushort)0x7803); BodyWriter.BeWrite((ushort)0x8001); BodyWriter.Write((byte)0x00); }
/// <summary> /// 初始化包体 /// </summary> protected override void PutBody() { Bitmap pic = new Bitmap(fileName); int Width = pic.Size.Width; // 图片的宽度 int Height = pic.Size.Height; // 图片的高度 //var Md5 = Util.GetMD5ToGuidHashFromFile(fileName); var picBytes = ImageHelper.ImageToBytes(pic); var Md5 = QQTea.MD5(picBytes); bodyWriter.Write(new byte[] { 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x5E, 0x08, 0x01, 0x12, 0x03, 0x98, 0x01, 0x01, 0x10, 0x01, 0x1A }); bodyWriter.BEWrite((char)0x5A); bodyWriter.Write((byte)0x08); bodyWriter.BEWrite(user.QQ); bodyWriter.Write((byte)0x10); bodyWriter.BEWrite(user.QQ); bodyWriter.BEWrite((char)0x1800); bodyWriter.Write((byte)0x22); bodyWriter.BEWrite((char)0x10); bodyWriter.Write(Md5); bodyWriter.Write((byte)0x28); bodyWriter.BEWrite(picBytes.Length); bodyWriter.Write((byte)0x32); bodyWriter.BEWrite((char)0x1A); bodyWriter.Write(new byte[] { 0x37, 0x00, 0x4D, 0x00, 0x32, 0x00, 0x25, 0x00, 0x4C, 0x00, 0x31, 0x00, 0x56, 0x00, 0x32, 0x00, 0x7B, 0x00, 0x39, 0x00, 0x30, 0x00, 0x29, 0x00, 0x52, 0x00 }); bodyWriter.BEWrite((char)0x3801); bodyWriter.BEWrite((char)0x4801); bodyWriter.Write((byte)0x50); bodyWriter.BEWrite(Width); bodyWriter.Write((byte)0x58); bodyWriter.BEWrite(Height); bodyWriter.BEWrite((char)0x6004); bodyWriter.BEWrite((char)0x6A05); bodyWriter.Write(new byte[] { 0x32, 0x36, 0x36, 0x35, 0x36 }); bodyWriter.BEWrite((char)0x7000); bodyWriter.BEWrite((char)0x7803); bodyWriter.BEWrite((char)0x8001); bodyWriter.Write((byte)0x00); }
/// <summary> /// 初始化包体 /// </summary> protected override void PutBody() { var pic = new Bitmap(FileName.Content); var width = pic.Size.Width; // 图片的宽度 var height = pic.Size.Height; // 图片的高度 var picBytes = ImageHelper.ImageToBytes(pic); _md5 = QQTea.MD5(picBytes); FileName.Set("Md5", Md5); BodyWriter.Write(new byte[] { 0x00, 0x00, 0x00, 0x07 }); var data = new BinaryWriter(new MemoryStream()); data.Write(new byte[] { 0x10, 0x01, 0x1A, 0x5A, 0x08 }); data.Write(Util.HexStringToByteArray(Util.PB_toLength(Group))); data.Write((byte)0x10); data.Write(Util.HexStringToByteArray(Util.PB_toLength(User.QQ))); data.Write(new byte[] { 0x18, 0x00, 0x22, 0x10 }); data.Write(_md5); data.Write((byte)0x28); data.Write(Util.HexStringToByteArray(Util.PB_toLength(picBytes.Length))); data.Write(new byte[] { 0x32, 0x1a }); data.Write(new byte[] { 0x50, 0x00, 0x42, 0x00, 0x41, 0x00, 0x42, 0x00, 0x52, 0x00, 0x24, 0x00, 0x4d, 0x00, 0x36, 0x00, 0x5f, 0x00, 0x5a, 0x00, 0x32, 0x00, 0x25, 0x00, 0x39, 0x00 }); data.Write(new byte[] { 0x38, 0x01, 0x48, 0x01 }); data.Write((byte)0x50); data.Write(Util.HexStringToByteArray(Util.PB_toLength(width))); data.Write((byte)0x58); data.Write(Util.HexStringToByteArray(Util.PB_toLength(height))); data.Write(new byte[] { 0x60, 0x04, 0x6a, 0x05 }); data.Write(new byte[] { 0x32, 0x36, 0x36, 0x35, 0x32 }); data.Write(new byte[] { 0x70, 0x00, 0x78, 0x03, 0x80, 0x01, 0x00 }); //数据长度 BodyWriter.BeWrite(data.BaseStream.Length); BodyWriter.Write(new byte[] { 0x08, 0x01, 0x12, 0x03, 0x98, 0x01, 0x01 }); //数据 BodyWriter.Write(data.BaseStream.ToBytesArray()); //使用之后释放文件 pic.Dispose(); }
/// <summary> /// 设置用户的密码,不会保存明文形式的密码,立刻用Double MD5算法加密 /// </summary> /// <param name="pwd">明文形式的密码</param> public void SetPassword(string pwd) { MD51 = QQTea.MD5(Util.GetBytes(pwd)); }
public void SetPassword(String pwd) { this.MD51 = QQTea.MD5(ByteHelper.GetBytes(pwd)); }