C 语言使用 MAC Address 作为种子生成随机数

C 语言使用 MAC Address 作为种子生成随机数

严格来说,如果 传递的 MAC Address 不变的话,生成的“随机数”也就固定下来了。和直接使用 MAC 地址的值似乎也没有什么区别。


目录

Core Code

#include <stdlib.h>
#include <stdio.h>

int anyFunc(){
        // ...any other code...
#define mac_str_to_bin(pMacStr, pMacArray) do{ \
        int _idx; \
        char *_s, *_e; \
        if ((pMacArray != NULL) && (pMacStr != NULL)) {\
            _s = (char *) pMacStr;\
            for (_idx = 0; _idx < 6; ++_idx) {\
                pMacArray[_idx] = _s ? strtoul (_s, &_e, 16) : 0;\
                if (_s)\
                   _s = (*_e) ? _e + 1 : _e;\
            }\
        }\
    } while(0)

        unsigned char dst[7] = {'\0'};
        unsigned long int sumMac = 0;
        //                                 \/ use your API to get MAC Address here.
        unsigned char tmpBuf4MAC[256] = "00:82:A2:39:BF:FE";
        mac_str_to_bin(tmpBuf4MAC,dst);
        for (dst[6]=0; dst[6]<6; dst[6]++) sumMac += dst[dst[6]];
        srand(sumMac);

        int random_value = rand();

        // ...any others code...
        return 0;
}

引用/参考


  1. mac地址转换为长整形.
  2. 随机函数rand()和随机数种子的作用
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值