Golang中mac地址+时间戳加入rand.Seed()产生随机数
记录一下用mac地址+local时间作为seed来产生随机数
// 首先记录一下rand.Seed()怎么用
// 官方说明,传入int64数据为Seed
func (r *Rand) Seed(seed int64)
// Seed uses the provided seed value to initialize the generator to a deterministic state.
// Seed使用提供的seed值将发生器初始化为确定性状态。
导致每次rand出来的都是一样的,所以至少我要加入时间戳为随机数种子
// 获取时间戳函数使用示例
t1 := time.Now().Unix() // 单位s,打印结果:1491888244
t2 := time.Now().UnixNano() // 单位纳秒,打印结果: // output 精度的差别 type:int64
完整代码:
package main import (
"fmt"
"net"
"time"
"hash/fnv"
) /* 加密 encryption */
// net
func GetMacAddrs()(string,error){
netInterfaces, err := net.Interfaces()
if err != nil {
return "",err
} for _, netInterface := range netInterfaces {
macAddr := netInterface.HardwareAddr.String()
if len(macAddr) == {
continue
}
return macAddr,nil
}
return "",err
} // hash output uint32
func Hash(s string) uint32{
h := fnv.New32a()
h.Write([]byte(s))
return h.Sum32()
} // add mac and time.now() as seed
func Hashseed() int64{
mac_adr, _ := GetMacAddrs()
t := time.Now().UnixNano() // int64
return int64(Hash(fmt.Sprintf("%d %s",t,mac_adr)))
} func main(){ rand.Seed(Hashseed())
rnd := make([]byte,)
binary.LittleEndian.PutUint32(rnd, rand.Uint32())
fmt.Println(rnd) }
Golang中mac地址+时间戳加入rand.Seed()产生随机数的更多相关文章
- 网络-数据包在路由转发过程中MAC地址和IP地址,变与不变
关于MAC地址和IP地址在传输过程中变与不变的问题: 结论:MAC地址在同一个广播域传输过程中是不变的,在跨越广播域的时候会发生改变的:而IP地址在传输过程中是不会改变的(除NAT的时候),总结为 路 ...
- MAC地址是什么
简介: MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在OSI模型中,第三 ...
- mac地址学习笔记
MAC(Media Access Control或者Medium Access Control)地址, 意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置. 在OSI模型中,第三层网 ...
- 计算机网络四:网卡与MAC地址
网卡与MAC地址 ㈠网卡 1.网卡定义 网卡是工作在OSI的数据链路层的网络组件,是局域网中连接计算机和传输介质(网线或WIFI信号)的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉 ...
- 无线路由MAC地址过滤安全可靠性讨论
无线路由MAC地址过滤安全可靠性讨论/如何实现,真的有效吗,如何防范 [内容导航] 什么是MAC地址过滤 突破MAC地址过滤步骤 捕获的无线客户端MAC地址 更改MAC地址来伪造身份 在W ...
- vmware克隆centos修改linux mac地址
故障背景: 在vmware workstation中了完全克隆了一个已经存在的centos的虚拟机,启动之后发现网卡没有启动.于是重启一下network服务,发现提示错误信息“Device eth0 ...
- Android5.1修改以太网MAC地址(SElinux)【转】
本文转载自:http://blog.csdn.net/LoongEmbedded/article/details/71477203 最近高通平台Android5.1项目中有个关于设置以太网MAC的需求 ...
- MAC地址 初识
MAC地址 即物理地址/硬件地址 地址长度为48位,6字节. 格式为:00-23-5A-15-99-42 一个网卡对应一个MAC地址(比如笔记本,有线网卡有一个MAC地址,无线网卡也有一个MAC地址) ...
- Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口、MAC地址、子网地址、协议)
>Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口.MAC地址.子网地址.协议) >>实验开始,先上拓扑图参考: 一.基于端口划分VLAN ...
随机推荐
- geos 3.6.3库windows版本 已编译完成的32位版本和64位版本
网上教编译方法的很多,直接分享编译完成的很少. 我就把编译完成的分享出来吧. geos-3.6.3.tar.bz2 (Changes) 版本的 https://trac.osgeo.org/geos ...
- Xcode9.2打包图片显示异常解决方案
链接:https://www.jianshu.com/p/ca0bbb403143來源:简书 在使用Xcode9.2适配iPhone X的过程中遇到了部分图片显示异常(不显示或花掉)的问题.主要分两种 ...
- 【Zend Studio】在Zend Studio中调试ThinkPhp框架
在这篇文章中,笔者将会展示如何在Zend Studio下进行断点调试Think PHP.环境:windows 7.wampServer 3.1.4 64bit.zend studio 13.6.1Th ...
- TensorFlow+Keras 01 人工智能、机器学习、深度学习简介
1 人工智能.机器学习.深度学习的关系 “人工智能” 一词最早是再20世纪50年代提出来的. “ 机器学习 ” 是通过算法,使用大量数据进行训练,训练完成后会产生模型 有监督的学习 supervise ...
- SQL递归方式实现省市区县级别查询
数据库脚本 CREATE TABLE [dbo].[Std_Area]( [Id] [int] NOT NULL, [Name] [nvarchar](50) NULL, [ParentId] [in ...
- idea 下 encodings.xml 的正确位置
在多个module存在的情况下 encodings.xml在 project 下的.idea 下面 这个就是最父级project
- x-www-form-urlencoded与multipart/form-data区别
转载声明: http://blog.chinaunix.net/uid-7210505-id-329700.html 在Flex中,UrlRequest中的contentType默认值为 applic ...
- Deepin 15.5上安装 Node.js
Node.js 源码安装 以下部分我们将介绍在Ubuntu Linux下安装 Node.js . 其他的Linux系统,如Centos等类似如下安装步骤. 在 Github 上获取 Node.js 源 ...
- java通过jdbc访问mysql,update数据返回值的思考
java通过jdbc访问mysql,update数据返回值的思考 先不说那么多,把Java代码贴出来吧. public static void main(String[] args) throws I ...
- [Java]判断Integer值相等最好不用==最好使用equals
测试代码 Integer c = ; Integer d = ; Integer e = ; Integer f = ; System.out.println(c == d); System.out. ...