通过字符串生成手机号

作者:
淡白
创建时间:
2023-04-18 12:12:42
golang

摘要:该程序通过将用户名的哈希转换为一个手机号码,生成用户的手机号。在程序中,假设用户名为"john"。首先,将用户名"john"进行MD5哈希运算,生成一个128位的哈希值。然后,将哈希值转换为一个大整数。接下来,取该大整数的前9位数字作为手机号码。最后,从数字"3456789"中随机选择一个数字,将其添加到手机号码的前面,形成最终的手机号码。以上是该程序的基本流程和实现方式。

用户信息中没有手机号,通过用户名的哈希来生成一个手机号。

package main

import (
	"crypto/md5"
	"fmt"
	"math/big"
)

func main() {
	// 假设用户名为"john"
	username := "john"

	// 生成一个128位的MD5哈希值
	hash := md5.Sum([]byte(username))

	// 将哈希值转换为一个大整数
	num := new(big.Int)
	num.SetBytes(hash[:])

	// 取前9位数字作为手机号码
	mobile := num.Mod(num, big.NewInt(1e9)).String()

	// 在手机号码前面添加"13"-"19"中的一个数字
	mobile = "1" + string("3456789"[num.Mod(num, big.NewInt(7)).Uint64()]) + mobile

	fmt.Println("Username:", username)
	fmt.Println("Mobile:", mobile)
}