汉字拼音加密笔记
原理
汉字拼音有多种表示法,为了让算法可逆,我们使用声调风格为拼音音调以数字形式加在拼音末尾处的格式。
如
聪
表示为cong1
我们使用 Python3 中的 pypinyin
包,借用其中的
pypinyin.lazy_pinyin()
函数快捷获取汉字拼音。
示例:
1
2
3 >>> from pypinyin import lazy_pinyin
>>> lazy_pinyin("独奏", style=8)
['du2', 'zou4']
然后我们将每个拼音的 ascii 码加起来,得到总和模 128 便可得到每个汉字所对应的 ascii 码明文。
如
独
的拼音为'du2'
,所对应的 ascii 码明文为 11
这样我们便得到了每个明文可以对应的汉字,其中按理来说,每个 ascii 明文所对应的汉字应该是多个的。
有关 pypinyin
库的用法可查阅它们的 github
主页和官方文档:
https://github.com/mozillazg/python-pinyin
https://pypinyin.readthedocs.io/zh_CN/master/
代码
这里只给出解密代码:
1 | import pypinyin |