大量优化

This commit is contained in:
flswld
2023-01-05 01:29:00 +08:00
parent f991480192
commit 27f16d9063
226 changed files with 2651 additions and 2484 deletions

View File

@@ -26,7 +26,7 @@ func NewSource64() rand.Source64 { return &source{index: N + 1} }
func (s *source) Seed(seed int64) {
s.array[0] = uint64(seed)
for s.index = 1; s.index < N; s.index++ {
s.array[s.index] = (0x5851F42D4C957F2D*(s.array[s.index-1]^(s.array[s.index-1]>>62)) + s.index)
s.array[s.index] = 0x5851F42D4C957F2D*(s.array[s.index-1]^(s.array[s.index-1]>>62)) + s.index
}
}
@@ -59,7 +59,7 @@ func (s *source) Uint64() uint64 {
x ^= (x >> 29) & 0x5555555555555555
x ^= (x << 17) & 0x71D67FFFEDA60000
x ^= (x << 37) & 0xFFF7EEE000000000
x ^= (x >> 43)
x ^= x >> 43
return x
}
@@ -68,12 +68,15 @@ type KeyBlock struct {
data [4096]byte
}
func NewKeyBlock(seed uint64) *KeyBlock {
func NewKeyBlock(seed uint64, useMagicSeed bool) *KeyBlock {
b := &KeyBlock{seed: seed}
r := NewRand()
r.Seed(int64(b.seed))
r.Seed(int64(r.Uint64()))
r.Uint64()
if useMagicSeed {
// 2.8.0版本后加入的黑魔法 刘慈欣:6
r.Seed(int64(r.Uint64()))
r.Uint64()
}
for i := 0; i < 4096>>3; i++ {
binary.BigEndian.PutUint64(b.data[i<<3:], r.Uint64())
}

View File

@@ -1,6 +1,7 @@
package random
import (
"encoding/hex"
"fmt"
"testing"
)
@@ -18,8 +19,11 @@ func TestKey(t *testing.T) {
gateDispatchXorKey := gateDispatchEc2b.XorKey()
keyBlock := NewKeyBlock(uint64(11468049314633205968))
fmt.Printf("dispatchXorKey: %v\n", hex.EncodeToString(dispatchXorKey))
fmt.Printf("gateDispatchXorKey: %v\n", hex.EncodeToString(gateDispatchXorKey))
keyBlock := NewKeyBlock(uint64(11468049314633205968), false)
gateXorKey := keyBlock.XorKey()
fmt.Println(dispatchXorKey, gateDispatchXorKey, gateXorKey)
fmt.Printf("gateXorKey: %v\n", hex.EncodeToString(gateXorKey[:]))
}