1. 程式人生 > >golang生成指定位數的隨機數

golang生成指定位數的隨機數

1.隨機數

隨機數,是使用一個確定性的演算法計算出來隨機數序。在程式開發中經常需要產生隨機數,如隨機數驗證碼登陸、作為唯一身份標識資料等等。

2.rand庫

golang中產生隨機數主要有兩個包,分別是“math/rand”和“crypto/rand”。
“math/rand”的rand包實現了偽隨機數生成器。
"crypto/rand"的rand包實現了用於加解密的更安全的隨機數生成器。

3.生成指定位數隨機數

以生成六位隨機數為例

package main
import (
   "fmt"
   "math/rand"
   )
func CreateCaptcha() string {
   return fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000))
}
func main(){
   fmt.Println(CreateCaptcha() )
}

輸出結果:
在這裡插入圖片描述
同理生成八位隨機數只需修改產生隨機數引數即可

func CreateCaptcha() string {
   return fmt.Sprintf("%08v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(100000000))
}

依次類推,需要其他指定位數的隨機數時均可通過修改上述引數產生。