瀏覽代碼

Remove restriction of padding length

V2Ray 10 年之前
父節點
當前提交
cc3f374623
共有 2 個文件被更改,包括 2 次插入5 次删除
  1. 1 4
      io/vmess/vmess.go
  2. 1 1
      spec/vmess.md

+ 1 - 4
io/vmess/vmess.go

@@ -226,10 +226,7 @@ func (w *VMessRequestWriter) Write(writer io.Writer, request *VMessRequest) erro
 		buffer = append(buffer, []byte(request.Address.Domain)...)
 	}
 
-	paddingLength := blockSize - 1 - (len(buffer)-encryptionBegin)%blockSize
-	if paddingLength == 0 {
-		paddingLength = blockSize
-	}
+	paddingLength := mrand.Intn(32) + 1
 	paddingBuffer := make([]byte, paddingLength)
 	_, err = rand.Read(paddingBuffer)
 	if err != nil {

+ 1 - 1
spec/vmess.md

@@ -26,7 +26,7 @@
   * 4 字节:IPv4
   * 1 字节长度 + 域名
   * 16 字节:IPv6
-* 1 字节:随机填充长度 M2 (0 < M2 <= 32),使得指令部分长度为 16 的倍数字节
+* 1 字节:随机填充长度 M2 (0 < M2 <= 32)
 * M2 字节:随机填充内容
 
 数据部分