国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用openssl rand隨機生成MAC地址的方法

這篇具有很好參考價值的文章主要介紹了使用openssl rand隨機生成MAC地址的方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

介紹

當我們使用虛擬網(wǎng)卡的時候,有時候需要為虛擬網(wǎng)卡配置隨機的MAC地址。我們知道,網(wǎng)卡的MAC地址實際上是一個6字節(jié)的整型數(shù),通常表現(xiàn)為用英文冒號(:)隔開的十六進制字符串(全部大寫或者全部小寫),如下面所示(全部小寫):

8c:ec:75:ab:b7:dc

openssl rand命令可以生成一個n字節(jié)的數(shù),我們可以使用該命令生成MAC地址。

openssl rand

openssl rand的用法

# 查看openssl rand的手冊
man openssl rand
OPENSSL-RAND(1SSL)                                                  OpenSSL                                                  > OPENSSL-RAND(1SSL)

NAME
       openssl-rand - generate pseudo-random bytes

SYNOPSIS
       openssl rand [-help] [-out file] [-base64] [-hex] [-engine id] [-rand files] [-writerand file] [-provider name] [-provider-path path]
       [-propquery propq] num

DESCRIPTION
       This command generates num random bytes using a cryptographically secure pseudo random number generator (CSPRNG).

       The random bytes are generated using the RAND_bytes(3) function, which provides a security level of 256 bits, provided it managed to
       seed itself successfully from a trusted operating system entropy source.  Otherwise, the command will fail with a nonzero error code.
       For more details, see RAND_bytes(3), RAND(7), and EVP_RAND(7).

OPTIONS
       -help
           Print out a usage message.

       -out file
           Write to file instead of standard output.

       -base64
           Perform base64 encoding on the output.

       -hex
           Show the output as a hex string.

       -engine id
           See "Engine Options" in openssl(1).  This option is deprecated.

       -rand files, -writerand file
           See "Random State Options" in openssl(1) for details.

       -provider name
       -provider-path path
       -propquery propq
           See "Provider Options" in openssl(1), provider(7), and property(7).

SEE ALSO
       openssl(1), RAND_bytes(3), RAND(7), EVP_RAND(7)

HISTORY
       The -engine option was deprecated in OpenSSL 3.0.

COPYRIGHT
       Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.

       Licensed under the Apache License 2.0 (the "License").  You may not use this file except in compliance with the License.  You can obtain
       a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.

3.0.2                                                              2023-02-06                                                OPENSSL-RAND(1SSL)

閱讀完openssl rand的手冊,我們知道,openssl rand能生成n字節(jié)的偽隨機數(shù),n可以指定,-hex選項用于以十六進制輸出這個偽隨機數(shù),所以,首先生成一個6字節(jié)數(shù)的十六進制字符串:

$ openssl rand -hex 6
14480616a8f2

下面只需要每2個字符串之間加一個英文冒號(:)就可以了,我們選擇sed命令來處理:

$ openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
b1:4b:f0:6f:89:4b

這樣,就生成了一個隨機的MAC地址。
簡單解釋一下,
openssl rand -hex 6 生成一個6字節(jié)數(shù)的十六進制字符串,
中間的 | 是管道符,將生成的字符串傳遞給sed命令,
sed 's/\(..\)/\1:/g; s/.$//'先在每2個字符串后面加一個英文冒號(:),然后去掉末尾的英文冒號,這樣就得到了一個MAC地址字符串。

下面,詳細解釋一下sed 's/\(..\)/\1:/g; s/.$//'的用法:
sed后面是一個單引號包裹的字符串,字符串里有2部分,分號(;)前面的s/\(..\)/\1:/g的作用是在每2個字符串后面加一個英文冒號(:),分號(;)后面的s/.$//去掉末尾的英文冒號。

  1. s/\(..\)/\1:/g

這是一個全局替換表達式,格式為: s/要替換的字符串模式/替換成的字符串/g
s substitute,替代、替換的意思
g global,全局的意思,表示符合條件的要全部替換
\(..\) 表示要匹配的字符串,\用于轉(zhuǎn)義左右括號,其實就是(..),,其中,.代表非換行符的任意字符,(..)代表2個非換行字符組成的任意字符串
\1 代表符合(..)格式的第一個子字符串,\1:就是在符合條件的子字符串加上一個英文冒號(:)
所以, s/\(..\)/\1:/g指的是:在每2個字符串后面加一個英文冒號

2. s/.$//
這是一個替換表達式,格式為: s/要替換的字符串模式/替換成的字符串/,只替換第一個
. 代表非換行符的任意一個字符
$代表末尾
所以, s/.$//指的是:去掉最后一個字符文章來源地址http://www.zghlxwxcb.cn/news/detail-700736.html

到了這里,關(guān)于使用openssl rand隨機生成MAC地址的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • openssl研發(fā)隨機數(shù)(random)生成(含源碼)

    openssl研發(fā)隨機數(shù)(random)生成(含源碼)

    在 OpenSSL 中,隨機數(shù)生成是一個非常重要的任務(wù),用于生成密碼學(xué)中的隨機數(shù),密鑰和初始化向量等。在開發(fā)應(yīng)用程序時,保證隨機數(shù)的質(zhì)量和隨機性非常關(guān)鍵,因為弱的隨機數(shù)可能導(dǎo)致密碼學(xué)的弱點,使得應(yīng)用程序容易受到攻擊。 在 OpenSSL 中,你可以使用以下函數(shù)來生成隨

    2024年02月08日
    瀏覽(54)
  • 在 Linux 系統(tǒng)中查找 MAC 地址的方法

    參考文章: 多種方法在Linux上找到MAC地址 引言: MAC(Media Access Control)地址是網(wǎng)絡(luò)設(shè)備(如網(wǎng)卡)的唯一標識符,用于在局域網(wǎng)中進行通信。在 Linux 系統(tǒng)中,有幾種方法可以查找設(shè)備的 MAC 地址。在本文中,我們將介紹兩種常用的方法,幫助你在 Linux 系統(tǒng)中查找 MAC 地址。

    2024年02月13日
    瀏覽(46)
  • 電腦IPv4和物理地址(MAC)隨機變化的解決方式(固定MAC地址)

    電腦IPv4和物理地址(MAC)隨機變化的解決方式(固定MAC地址)

    一直認為MAC地址是不會變化的,每臺設(shè)備應(yīng)該是固定的,但是在項目測試當中,發(fā)現(xiàn)Win10的最新版本和win11都具備開啟隨機硬件地址的功能 開啟隨機硬件地址時,IPv4和物理地址(MAC隨機變動),如果要固定MAC地址就需要注意: 1、首先,打開“網(wǎng)絡(luò)和Internet設(shè)置”,關(guān)閉或者開

    2024年02月15日
    瀏覽(30)
  • 【c++】rand()隨機函數(shù)的應(yīng)用(一)——rand()函數(shù)詳解和實例

    【c++】rand()隨機函數(shù)的應(yīng)用(一)——rand()函數(shù)詳解和實例

    c++語言中可以用rand()函數(shù)生成隨機數(shù),今天來探討一下rand()函數(shù)的基本用法和實際應(yīng)用。 本系列文章共分兩講,今天主要介紹一下偽隨機數(shù)生成的原理,以及在偽隨機數(shù)生成的基礎(chǔ)上,生成隨機數(shù)的技巧,下一講主要介紹無重復(fù)隨機數(shù)生成的方法和舒爾特方格數(shù)字生成的實例

    2024年02月08日
    瀏覽(22)
  • Android11 Wifi Mac地址設(shè)置隨機或者固定分析

    本文對Android11 wifi MAC地址設(shè)置是否隨機問題進行分析。 Android 8.0 開始,設(shè)備開始支持Wifi 隨機MAC,說是為了安全。 很多手上也能看到Wifi 默認使用的是隨機MAC地址。 但是有些情況下,需要固定MAC,比如有些OTA升級用的是Wifi MAC地址,這時候就要MAC固定。 所以有必要對設(shè)備 W

    2023年04月16日
    瀏覽(26)
  • hive 隨機抽樣 distribute by rand() sort by rand() limit n

    在分析或者處理大規(guī)模數(shù)據(jù)時,由于數(shù)據(jù)量較大時,一般只能隨機抽樣一部分的數(shù)據(jù)來分析,那么如何進行隨機抽樣呢? 下面有幾種方法,目前常用的是 distribute by rand() sort by rand() limit n order by rand() : order by 是全局的,比較耗時, 只有一個reduce,是真正的隨機 sort by rand()

    2023年04月23日
    瀏覽(28)
  • OpenSSL 生成 RootCA (根證書)并自簽署證書(支持 IP 地址)

    某機房內(nèi)部訪問需要配置 HTTPS,網(wǎng)上找的一些證書教程都不是特別好,有些直接生成證書,沒有根 CA 的證書導(dǎo)致信任不了 Ubuntu 機器,有些教程只有域名生成,沒有 IP 生成,有些甚至報錯。故發(fā)一個筆者在 Ubuntu 22.04 機器上測試正確可用的流程,這里使用 10.12.0.2 作為例子生

    2024年02月08日
    瀏覽(15)
  • C語言rand()函數(shù)產(chǎn)生隨機數(shù)詳解

    C語言rand()函數(shù)產(chǎn)生隨機數(shù)詳解

    rand函數(shù)的原型: rand函數(shù)的功能: 用來產(chǎn)生一個隨機數(shù) rand函數(shù)的界限: stdlib.h頭文件中有宏#define RAND_MAX 0x7fff,這表示rand產(chǎn)生一個0-0x7fff的隨機數(shù),即最大是32767的一個數(shù) rand函數(shù)獲取隨機數(shù)的基礎(chǔ)用法為: a是一個整數(shù),返回值為0到a的隨機數(shù),包含0,但不包含a。 如果想要

    2024年02月06日
    瀏覽(14)
  • rand()函數(shù)與srand()函數(shù)以及隨機數(shù)種子詳解

    rand()函數(shù)與srand()函數(shù)以及隨機數(shù)種子詳解

    初學(xué)者大部分對這兩個函數(shù)的意義都不甚了解,以及不明白為什么需要srand()函數(shù)來播種,這里會對兩函數(shù)的意義進行解釋,讓大家明白兩函數(shù)搭配的作用,并對偽隨機數(shù)以及真隨機數(shù)進行講解,最后會對隨機數(shù)生成的原理進行一些探討,希望對大家的學(xué)習(xí)理解有所幫助 格式

    2024年01月25日
    瀏覽(24)
  • 仿真平臺sumo:隨機生成車流的randomTrips.py的較便捷使用方法(新手用)

    仿真平臺sumo:隨機生成車流的randomTrips.py的較便捷使用方法(新手用)

    Step1:首先把需要的地圖文件(…….net.xml)放入自己認為方便操作的文件夾中。 【此處我的地圖文件為demo.net,我將其放在一個桌面新建的文件夾里,該文件夾叫sumo-random】 圖1 Step2:打開自己當時安裝sumo的所在目錄,點開,進入tools文件夾,找到randomTrips.py,將其復(fù)制到圖1的

    2023年04月18日
    瀏覽(171)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包