pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

文字列の数値化

文字列をmd5sum化し(16進数32桁)を、4桁づつ10進数に変換

 

コード

# -*- coding:utf-8 -*-

import hashlib
import re


def trans_to_nums(s):
    m = hashlib.md5()
    m.update(s)
    h = m.hexdigest()
    # hは16進数32桁
    # 4桁づつ、リストにする。
    # https://stackoverflow.com/questions/13673060/split-string-into-strings-by-length
    nums = [ int(i, 16) for i in re.split('(.{4})', h)[1::2] ]
    return nums


nums = trans_to_nums('hogehoge')
print(nums)

 

実行結果

# python ./a.py 
[12948, 13797, 58987, 59401, 42582, 44816, 24386, 16414]

QRコード

以下URLでコード化
QRコード(二次元バーコード)作成【無料】
6倍指定
 

QRコード

hoge
f:id:pikesaku:20180826123514p:plain
 
hogf
f:id:pikesaku:20180826123527p:plain
 
hoge1
f:id:pikesaku:20180826123558p:plain
 
abcd
f:id:pikesaku:20180826123722p:plain
 

わかったこと

同じ文字数で似た文字列だと、出力コードに一部同じ部分が作られる。