浏览代码

More optimal byte reversing

tags/0.9
9seconds 7 年前
父节点
当前提交
7b43766a08
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. 7
    3
      mtproto/wrappers/crypt.go

+ 7
- 3
mtproto/wrappers/crypt.go 查看文件

@@ -95,9 +95,13 @@ func makeEncrypterDecrypter(key, iv []byte) (cipher.BlockMode, cipher.BlockMode)
95 95
 }
96 96
 
97 97
 func reverseBytes(data []byte) []byte {
98
-	rv := make([]byte, len(data))
99
-	for k, v := range data {
100
-		rv[len(data)-1-k] = v
98
+	dataLen := len(data)
99
+	rv := make([]byte, dataLen)
100
+
101
+	rv[dataLen/2] = data[dataLen/2]
102
+	for i := dataLen/2 - 1; i >= 0; i-- {
103
+		opp := dataLen - i - 1
104
+		rv[i], rv[opp] = data[opp], data[i]
101 105
 	}
102 106
 
103 107
 	return rv

正在加载...
取消
保存