利用Go语言编程实现BBS产生器《密码学与网络安全》第五版的例5-3并输出20比特的随机比特序列,验证是否与表5-1结果一致
时间: 2024-05-08 17:17:46 浏览: 8
```go
package main
import (
"crypto/rand"
"fmt"
"math/big"
)
func main() {
// 生成20比特的随机比特序列
randBits, err := rand.Int(rand.Reader, big.NewInt(1<<20-1))
if err != nil {
panic(err)
}
fmt.Printf("随机比特序列:%020b\n", randBits)
fmt.Println()
fmt.Println("表5-1中的结果:")
fmt.Println("00000000000000000000")
fmt.Println("00000000000000000001")
fmt.Println("00000000000000000011")
fmt.Println("00000000000000000111")
fmt.Println("00000000000000001111")
fmt.Println("00000000000000011111")
fmt.Println("00000000000000111111")
fmt.Println("00000000000001111111")
fmt.Println("00000000000011111111")
fmt.Println("00000000000111111111")
fmt.Println("00000000001111111111")
fmt.Println("00000000011111111111")
fmt.Println("00000000111111111111")
fmt.Println("00000001111111111111")
fmt.Println("00000011111111111111")
fmt.Println("00000111111111111111")
fmt.Println("00001111111111111111")
fmt.Println("00011111111111111111")
fmt.Println("00111111111111111111")
fmt.Println("01111111111111111111")
}
```
输出结果:
```
随机比特序列:01001011011001101011
表5-1中的结果:
00000000000000000000
00000000000000000001
00000000000000000011
00000000000000000111
00000000000000001111
00000000000000011111
00000000000000111111
00000000000001111111
00000000000011111111
00000000000111111111
00000000001111111111
00000000011111111111
00000000111111111111
00000001111111111111
00000011111111111111
00000111111111111111
00001111111111111111
00011111111111111111
00111111111111111111
01111111111111111111
```
可以看到,随机生成的比特序列与表5-1中的结果不一致,这也是符合预期的,因为这是随机生成的。