Hatena::ブログ(Diary)

kinneko@転職先募集中の日記

検索エンジンから来た方へ: 申し訳ないですが、日記なので日々積み重なっています。
目的の情報にたどり着くには、右の検索窓から日記内を再検索してください。
北陸エリア内(もしくはエリア外でも)で転職先を探しています。
(マジです。ネタではありません。ホントですって...)
詳細履歴書をご希望の方はメールでご連絡下さいませ。(kinneko at gmail.com)
chromeで見ると、死ぬほど出るGoogleの広告がブロックできないので、
firefoxでABPを入れるとすっきり見られます。

2018-03-26

procからuuid作ると、14文字目が4になる

uuidをファイル名にしてたくさん作ったものをlsして気がついた。

漫然と表示してただけなら気が付かなかったかも。


再現テスト。

#!/bin/bash
for i in `seq 1000`
do
  cat /proc/sys/kernel/random/uuid | awk -F'-' '{print $1$2$3$4$5}u' >> test.log
done
cat test.log| cut -c 13 | sort | uniq -c

$ ./test.sh

1000 4

面白い。


環境はAWS t2.microでubuntu 16.04.4。

$ uname -a

Linux ip-xxx-xxx-xxx-xxx 4.4.0-1049-aws #58-Ubuntu SMP Fri Jan 12 23:17:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release

NAME="Ubuntu"

VERSION="16.04.4 LTS (Xenial Xerus)"

ID=ubuntu

ID_LIKE=debian

PRETTY_NAME="Ubuntu 16.04.4 LTS"

VERSION_ID="16.04"

HOME_URL="http://www.ubuntu.com/"

SUPPORT_URL="http://help.ubuntu.com/"

BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

VERSION_CODENAME=xenial

UBUNTU_CODENAME=xenial


UUIDって、完全乱数かと思ってたら、ver4ではバリアントとバージョン情報が入るのね。

16進表記ではRRRRRRRR-RRRR-4RRR-rRRR-RRRRRRRRRRRRとなり、バリアント(10)とバージョン(0100)を除くすべてのビットを乱数(R:122ビット)で生成する。

規則性が埋もれているのであれば、扱いには注意しないといけないな...

トラックバック - http://d.hatena.ne.jp/kinneko/20180326/p1