社会主义核心价值观
https://github.com/xk-mt/Core-socialist-values-codec
编解码过程
1.把字符通过UTF-8编码成十六进制数据
2.把十六进制遍历,大于10的数据转成 【(11,a-6),(10,a-10)】 随机二选一【所以多次编码后的内容不一致】
3.把下面列表导入,从0开始遍历循环输出内容。
[‘富强’, ‘民主’, ‘文明’, ‘和谐’, ‘自由’, ‘平等’, ‘公正’, ‘法治’, ‘爱国’, ‘敬业’, ‘诚信’, ‘友善’]
举例 手动编码
编码内容:我
1.使用UTF-8编码“我”,得到“E68891”
2.把“E68891”拆分成列表并且转10进制,“E”16转10进制是“14”,大于10的需要截取,转成 【(11,14-6),(10,14-10)】 随机二选一所以这里是的“E”变成了“10,4”
E68891
E 6 8 8 9 1
[10, 4, 6, 8, 8, 9, 1]
3.从社会主义核心价值观读取显示出来
[ 10 , 4 , 6 , 8 , 8 , 9 , 1 ]
['诚信', '自由', '公正', '爱国', '爱国', '敬业', '民主']
'诚信自由公正爱国爱国敬业民主'
富强:0
民主:1
文明:2
和谐:3
自由:4
平等:5
公正:6
法治:7
爱国:8
敬业:9
诚信:10
友善:11
4.网页解码校验
下面两个链接均可以编解码
链接: 社会主义核心价值观加密/解密(atoolbox)
链接: 社会主义核心价值观加密/解密(duoluosb)
编码脚本(python)
import random
while 1:
str1 = str(bytes(input('输入要编码的文本:'), encoding='u8'))[2:-1].replace('\\x', '')
list1 = []
for f1 in str1:
str2 = int(f1, 16)
if str2 < 10:
list1.append(str2)
elif random.random() < 0.5:
list1.append(11)
list1.append(str2 - 6)
else:
list1.append(10)
list1.append(str2 - 10)
str1 = '富强民主文明和谐自由平等公正法治爱国敬业诚信友善'
str1 = ''.join([str1[f1 << 1] + str1[f1 << 1 | 1] for f1 in list1])
print('编码结果:',str1,'\n'*3)
解码脚本(python)
while 1:
str1 = input('输入要解码的文本:')
list1 = ['富强', '民主', '文明', '和谐', '自由', '平等', '公正', '法治', '爱国', '敬业', '诚信', '友善']
list1 = [list1.index(str1[f1 << 1] + str1[f1 << 1 | 1]) for f1 in range(int(len(str1)/2))]
a = 0
list2 = []
while a < len(list1):
if list1[a] < 10:
list2.append(str(list1[a]))
elif list1[a] == 10:
a += 1
list2.append(hex(list1[a]+10)[2:])
else:
a += 1
list2.append(hex(list1[a]+6)[2:])
a += 1
str1 = bytes.fromhex(''.join(list2)).decode('utf-8')
print('解码结果:', str1, '\n'*3)
参考链接:
链接: [Java原创]中国红色加密–新型中文加密算法社会主义核心价值观加密方法解析+python版复现-CSDN博客