在 StackExchange 看到不錯的解法:
tr -dc A-Za-z0-9 </dev/urandom | head -c 16
head
那邊的 16
為字串長度,假如只需要 4 個字的話就改成 4
即可。
另外,上面產生出來的英文字母有分大小寫,可以再搭配 tr
把文字全部轉小寫、或轉大寫:
echo "Hello World" | tr '[:upper:]' '[:lower:]'
軟體開發、伺服器和生活瑣事
在 StackExchange 看到不錯的解法:
tr -dc A-Za-z0-9 </dev/urandom | head -c 16
head
那邊的 16
為字串長度,假如只需要 4 個字的話就改成 4
即可。
另外,上面產生出來的英文字母有分大小寫,可以再搭配 tr
把文字全部轉小寫、或轉大寫:
echo "Hello World" | tr '[:upper:]' '[:lower:]'
前一次看到 StackOverflow 故障,是用 BrainFuck 語言寫了一個 error message。而這次呢?
就算不用 BrainFuck,照樣讓你 BrainFucked …. XD
這篇文章透過基礎的程式運作方式來探討記憶體管理機制,值得一讀。
傳送門:Rust 與記憶體
網路上多數都說需要 unique ID 的話用 uniqid()
產生即可,不過事實上這個方法產生的亂度不夠亂,特殊情空下是可以用猜的猜到:
foreach(range(1,10) as $n) { echo uniqid() . "\n"; }
$ php uid.php 62283582750d2 62283582750de 62283582750df 62283582750e0 62283582750e1 62283582750e2 62283582750e3 62283582750e4 62283582750e5 62283582750e6
如果需要亂度夠大的 ID,官方建議使用 random_bytes()
等函式來實作:
foreach(range(1,10) as $n) { echo bin2hex(random_bytes(8)) . "\n"; }
$ php uid.php 8deaa97f2cc4709d f2c556361d316f8d bcf97aa28e6b5a02 7453b298b1f748e5 6478265fb8da5c01 4981729191162649 80a7a2824818addf 622009f43ec32836 3b4d757e1894702c 4a254e226179e3b5