八卦的阴阳刚好可以跟计算机中的“0”,“1”相对,所以我试着将ASCII码表中包含的字符转化为用八卦卦象表示,并用python制作了一个简单的加密解密程序。因为最近才接触编程,技术浅陋,某些段落可能使人血压飙升(其实我自己就看着很难受,但苦于能力不足,找不到好的替代方法)。

众所周知,ASCII码如果表示为二进制,一般表示为八位二进制数字(一个字节)。

如小写字母a表示为01100001。因为ASCII码第一位都是0,所以我将0去掉,变为1100001。然后按照1-3-3结构分割,成为1-100-001。

然后进行转化

首先因为第一个部分只会是“1”或“0”,所以把第一个部分的“0”转化为“逆”,“1”转化为“正”。就得到 正-100-001。

然后把后两个部分的“1”对应为“阳”,“0”对应为“阴”,可以得到 正-阳阴阴-阴阴阳。

最后按照卦象,阳阴阴对应艮卦,阴阴阳对应震卦,所以最后得到的结果是 正-艮-震,即正艮震。

至此,字母a对应为“正艮震”。

以下为加密/解密程序源码。

import time
codelist = []
fuxi = ['坤', '震', '坎', '兑', '艮', '离', '巽', '乾']
Judge = int(input('扣1加密,扣0解密'))
if Judge == 1:strlist = input("在此输入要加密的字符(仅支持ASCII码支持的字符)")for character in strlist:if len(bin(ord(character)).replace('0b', '')) == 7 :codelist.append(str(bin(ord(character)).replace('0b','')))else:codelist.append('0'+str(bin(ord(character)).replace('0b', '')))for code in codelist:code3 = []code2 = list(code)if code2[0] == '0':cncode0 = '逆'else:cncode0 = '正'cncode1 = str(fuxi[int(str(code2[1]+code2[2]+code2[3]), 2)])cncode2 = str(fuxi[int(str(code2[4]+code2[5]+code2[6]), 2)])cncode = cncode0+cncode1+cncode2print(cncode, end='~')
elif Judge == 0:string = input("在此输入要解密的密码")cncodelist = string.split('~')del cncodelist[-1]for cncode in cncodelist:cncodesplit = list(cncode)if cncodesplit[0] == '逆':code1 = '0'else:code1 = '1'if len(str(bin(fuxi.index(cncodesplit[1])).replace('0b', ''))) == 3:code2 = str(bin(fuxi.index(cncodesplit[1])).replace('0b', ''))elif len(str(bin(fuxi.index(cncodesplit[1])).replace('0b', ''))) == 2:code2 = '0'+str(bin(fuxi.index(cncodesplit[1])).replace('0b', ''))else :code2 = '00'+str(bin(fuxi.index(cncodesplit[1])).replace('0b', ''))if len(str(bin(fuxi.index(cncodesplit[2])).replace('0b', ''))) == 3:code3 = str(bin(fuxi.index(cncodesplit[2])).replace('0b', ''))elif len(str(bin(fuxi.index(cncodesplit[2])).replace('0b', ''))) == 2:code3 = '0'+str(bin(fuxi.index(cncodesplit[2])).replace('0b', ''))else :code3 = '00'+str(bin(fuxi.index(cncodesplit[2])).replace('0b', ''))code = code1+code2+code3character = chr(int(code, 2))print(character,end='')
time.sleep(0.5)
input('')

附带一个加密的例子:

这是B站首页网址:哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

这是加密后的效果:正离坤~正巽艮~正巽艮~正巽坤~正巽兑~逆乾坎~逆离乾~逆离乾~正巽乾~正巽乾~正巽乾~逆离巽~正艮坎~正离震~正离艮~正离震~正艮坎~正离震~正离艮~正离震~逆离巽~正艮兑~正离乾~正离离~逆离乾~

python实现用伏羲八卦对ASCII码进行加密相关推荐

  1. 【python】将字符串转换为十进制ASCII码

    名副其实,将字符串转换为一个个十进制ASCII码的操作,本文章用python2.7的环境去完成 先上脚本 print(map(ord,"hello world")) 这样就能把一整 ...

  2. python加密规则ascii码值加5_Python使用编码加密输入数据

    1.指定方式加密数据 ''' 能够加密的内容是英文和汉字.同时加密并且解密 就是说,一段话中既有中文又有英文,标点符号不用处理. 加密规则,获取ascii码数字,中间用|分割 # 思路提示: prin ...

  3. python汉字转到ascii码_python中字母与ascii码的相互转换

    在做python编程时,碰到了需要将字母转换成ascii码的,原本以为用Int()就可以直接将字符串转换成整形了,可是int()带了一个默认参数,base=10,这里表示的是十进制,若出现字母,则会报 ...

  4. python Unicode转ascii码的一种方法

    缘起 看到这样的数据:Marek Čech.Beniardá怎样变成相对应的ascii码呢 解决 import unicodedata s = u"Marek Čech" #(u表 ...

  5. python 语言, 详解fromstring 函数 -------------从字符串到Ascii 码的转换

    先来个小例子: test = "abcdef" temp = numpy.fromstring(test,dtype=numpy.int8) print(temp) 结果为:[ 9 ...

  6. python中字母用什么表示_python中字母与ascii码的相互转换

    在做python编程时,碰到了需要将字母转换成ascii码的,原本以为用Int()就可以直接将字符串转换成整形了,可是int()带了一个默认参数,base=10,这里表示的是十进制,若出现字母,则会报 ...

  7. python基础整理——ASCII码、Unicode、utf-8、gbk

    2019独角兽企业重金招聘Python工程师标准>>> 编码的问题其实是各国语言多样性造成的,最初的计算机是美国发明的,而计算机只能处理数据,不能够处理文本文档.因为计算机只能处理数 ...

  8. 关于Python ord()和chr()返回ASCII码和Unicode码的看法

    刚开始学这两个函数的时候,看到书上说的是返回Unicode码, 但是自己去百度之后,发现很多人都说返回是ASCII码 为什么会这样呢? 那么为了不误解 ,我们先介绍下Unicode码和ASCII码 A ...

  9. python汉字转到ascii码_python中ASCII码字符与int之间的转换方法

    ASCII码转换为int:ord('A') 65 int转为ASCII码:chr(65) 'A' 题目内容: 实现一个凯撒密码的变种算法,对输入字符串进行加解密处理 把字母a-z分别循环对应为相距13 ...

最新文章

  1. 关于学习Python的一点学习总结(47->静态方法和类方法)
  2. matlab caxis 刻度,[求助]MATLAB画图问题,caxis.m的问题
  3. Will Wright总是能给我们带来惊奇啊
  4. CSP认证201409-3 字符串匹配[C++题解]:字符串处理
  5. jquery获取一个table中的一行的每个td的内容
  6. Hadoop2.7.6在Windows7单机部署
  7. typeScript模块四
  8. java 如何判断余数_用java判断一个数是不是回文数!
  9. python线性链表_线性表 (单链表、循环链表-python实现)
  10. x1电源灯一直闪_小器鬼LED平板灯 | 明亮好光,洁净好家
  11. Camera 初始化(Open)一(FrameWork - Hal)
  12. SSM+Bootstrap+MYSQL演唱会网上订票系统
  13. Photoshop去除拍摄手写笔记背景
  14. 2019很艰难,2020会更好吗
  15. Electron-Builder打包时报错could not find: “C:\Users\XX\AppData\Local\Temp\t-bDWVX6\0-messages.nsh“
  16. 新媒体运营教程:如何用直播进行裂变+转化?
  17. php fgetc,PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数
  18. python是什么意思中文、好学吗-零基础学python难吗?好学吗?
  19. 西门子S7-1200 HslcommunicationDemo大纲拆解
  20. 手机设备唤醒计算机,手机微信实现网络唤醒电脑(WOL),远程开机,WakeOnLan – 全栈笔记...

热门文章

  1. java 依赖的项目报错_关于eclipse的maven项目Java Build Path中maven依赖报错问题
  2. 微信个人号客服系统淘宝客发单机器人sdk服务端接口列表
  3. [视觉概述] 机器视觉应用方向、项目流程及学习思路总结
  4. 解决java关键字和bean变量名内容冲突的神器
  5. mac 命令行小技巧--mas 替代appstore
  6. 怎样将表格拆分为两个
  7. 对编程有着不可磨灭影响——离散数学——图论
  8. conda创建Python虚拟环境
  9. spark driver HA
  10. 5年以上旧电脑如何升级