首页 > 其他分享 >二进制转布莱叶盲文转义

二进制转布莱叶盲文转义

时间:2023-08-26 20:35:16浏览次数:23  
标签:BINARY type 二进制 ASCII 盲文 output table TYPE 转布莱叶

输入s二进制数据

TYPE_HEX = 0
TYPE_ASCII = 1
TYPE_BINARY = 2
TYPE_BRAILLE = 3

with open('lookup_table.txt', 'r') as f:
    rows = f.read().splitlines()
table = list(map(lambda x: x.split('\t'), rows))

def convert(text_array, in_type=TYPE_BINARY, out_type=TYPE_ASCII, sep=''):
    output = []

    input_table = list(map(lambda x: x[in_type], table))
    output_table = list(map(lambda x: x[out_type], table))

    for item in text_array:
        index = input_table.index(item.upper())
        output.append(output_table[index])

    return sep.join(output)

s='100100011100010100100100011110110100000111110001101001100100110000111010001111100110010100111000111000001111100100000101011111'
x = []
for i in range(0,len(s),6):
    x.append(s[i:i+6])

y=convert(x, TYPE_BINARY, TYPE_BRAILLE)
print(y)
#⠉⠎⠊⠉⠞⠋⠸⠣⠥⠉⠃⠗⠼⠙⠊⠇⠇⠼⠉⠨⠾ z=convert(y, TYPE_BRAILLE, TYPE_HEX) print(z)
#4353494354465F3C554342522344494C4C23432E29 print(bytes.fromhex(z).decode())
#CSICTF_<UCBR#DILL#C.)

输入结果为CSICTF_<UCBR#DILL#C.),实际上需要转换,将所有的大写转成小写,'_>'转成'{','.)'转成'}',#C对应3,#D对应4,如此类推

即结果为csictf{ucbr4ill3}

 

lookup_table.txt

 

 

 

Hex    ASCII    Binary    Braille
20         000000    ⠀
21    !    011101    ⠮
22    "    000010    ⠐
23    #    001111    ⠼
24    $    110101    ⠫
25    %    100101    ⠩
26    &    111101    ⠯
27    '    001000    ⠄
28    (    111011    ⠷
29    )    011111    ⠾
2A    *    100001    ⠡
2B    +    001101    ⠬
2C    ,    000001    ⠠
2D    -    001001    ⠤
2E    .    000101    ⠨
2F    /    001100    ⠌
30    0    001011    ⠴
31    1    010000    ⠂
32    2    011000    ⠆
33    3    010010    ⠒
34    4    010011    ⠲
35    5    010001    ⠢
36    6    011010    ⠖
37    7    011011    ⠶
38    8    011001    ⠦
39    9    001010    ⠔
3A    :    100011    ⠱
3B    ;    000011    ⠰
3C    <    110001    ⠣
3D    =    111111    ⠿
3E    >    001110    ⠜
3F    ?    100111    ⠹
40    @    000100    ⠈
41    A    100000    ⠁
42    B    110000    ⠃
43    C    100100    ⠉
44    D    100110    ⠙
45    E    100010    ⠑
46    F    110100    ⠋
47    G    110110    ⠛
48    H    110010    ⠓
49    I    010100    ⠊
4A    J    010110    ⠚
4B    K    101000    ⠅
4C    L    111000    ⠇
4D    M    101100    ⠍
4E    N    101110    ⠝
4F    O    101010    ⠕
50    P    111100    ⠏
51    Q    111110    ⠟
52    R    111010    ⠗
53    S    011100    ⠎
54    T    011110    ⠞
55    U    101001    ⠥
56    V    111001    ⠧
57    W    010111    ⠺
58    X    101101    ⠭
59    Y    101111    ⠽
5A    Z    101011    ⠵
5B    [    010101    ⠪
5C    \    110011    ⠳
5D    ]    110111    ⠻
5E    ^    000110    ⠘
5F    _    000111    ⠸

 

 

 

Hex    ASCII    Binary    Braille
20         000000    ⠀
21    !    011101    ⠮
22    "    000010    ⠐
23    #    001111    ⠼
24    $    110101    ⠫
25    %    100101    ⠩
26    &    111101    ⠯
27    '    001000    ⠄
28    (    111011    ⠷
29    )    011111    ⠾
2A    *    100001    ⠡
2B    +    001101    ⠬
2C    ,    000001    ⠠
2D    -    001001    ⠤
2E    .    000101    ⠨
2F    /    001100    ⠌
30    0    001011    ⠴
31    1    010000    ⠂
32    2    011000    ⠆
33    3    010010    ⠒
34    4    010011    ⠲
35    5    010001    ⠢
36    6    011010    ⠖
37    7    011011    ⠶
38    8    011001    ⠦
39    9    001010    ⠔
3A    :    100011    ⠱
3B    ;    000011    ⠰
3C    <    110001    ⠣
3D    =    111111    ⠿
3E    >    001110    ⠜
3F    ?    100111    ⠹
40    @    000100    ⠈
41    A    100000    ⠁
42    B    110000    ⠃
43    C    100100    ⠉
44    D    100110    ⠙
45    E    100010    ⠑
46    F    110100    ⠋
47    G    110110    ⠛
48    H    110010    ⠓
49    I    010100    ⠊
4A    J    010110    ⠚
4B    K    101000    ⠅
4C    L    111000    ⠇
4D    M    101100    ⠍
4E    N    101110    ⠝
4F    O    101010    ⠕
50    P    111100    ⠏
51    Q    111110    ⠟
52    R    111010    ⠗
53    S    011100    ⠎
54    T    011110    ⠞
55    U    101001    ⠥
56    V    111001    ⠧
57    W    010111    ⠺
58    X    101101    ⠭
59    Y    101111    ⠽
5A    Z    101011    ⠵
5B    [    010101    ⠪
5C    \    110011    ⠳
5D    ]    110111    ⠻
5E    ^    000110    ⠘
5F    _    000111    ⠸

 

标签:BINARY,type,二进制,ASCII,盲文,output,table,TYPE,转布莱叶
From: https://www.cnblogs.com/willingyut/p/17659399.html

相关文章

  • 剑指Offer 15. 二进制中1的个数
    题目链接:剑指Offer15.二进制中1的个数题目描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为'1'的个数(也被称为汉明重量).)。解法思路:思路一:num依次右移,判断每一次移动后最后一位是否是1,是的话,就ans++代码:func(numuint32)int{......
  • 二进制生成二维码
    由一串二进制数字生成一张二维码图片fromPILimportImagefromzxingimportBarCodeReaderreader=BarCodeReader()MAX=70pic=Image.new("RGB",(MAX,MAX))binary_nums="""此处放二进制""".replace('\n','')i=0......
  • PXC 57 二进制安装
    1.准备阶段1.1在三个节点上分别创建:用户组用户组目录--用户组用户组#/usr/sbin/groupaddmysql#/usr/sbin/useradd-gmysqlmysql--目录#mkdir–p/usr/local/mysql#chown-Rmysql:mysql/usr/local/mysql#chmod-R755/usr/local/......
  • 二进制
    二进制给定一个长度为$N$的二进制串($01$串)以及一个正整数$K$。按照从左到右的顺序,依次遍历给定二进制串的$N-K+1$个长度为$K$的子串,并计算每个遍历子串的各位数字之和。将这$N-K+1$个子串数字和按照子串的遍历顺序进行排列,得到的序列就是给定二进制串的$\texttt{K-}......
  • C语言实现十进制转为二进制 递归法
    //ConsoleApplication15.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//  #include<iostream>#include<stdio.h>usingnamespacestd;voidto_binary(unsignedlongn);intmain(void){  unsignedlongnumber;  printf("Enteraninteger(......
  • Linux下MySql的三种安装方式:RPM 二进制包和源代码
    mysql的三种安装方式:RPM二进制包和源代码本次安装的系统平台为redhat5一、使用RPM包进行安装    首先可以从安装光盘中或者到mysql的网站上下载对应版本的rpm包如下:MySQL-server-community-5.1.38-0.rhel5.i386.rpmMySQL-client-community-5.1.38-0.rhel5.i386.rpm   ......
  • feign传递文件、传递二进制流
    传递文件服务端@RestControllerpublicclassDemoController{@PostMapping("/upload")@ApiOperation("上传文件")publicvoidupload(@RequestParam("file")MultipartFilefile)throwsException{ //todo}}客户端申明接口主要是加上consu......
  • 二进制CRC校验码生成程序
      /**二进制CRC序列生成程序*/#include<stdio.h>#include<string.h>#defineLEN_DIVIDEND30#defineLEN_DIVISOR30#defineLEN_SEQUENCELEN_DIVIDEND+LEN_DIVISORvoidCRC(char*,char*,char*);voidMOD2_div(char*,char*,char*);voidmove(char*,int);intmai......
  • 以二进制文件安装K8S之高可用部署架构
    在Kubernetes系统中,Master节点扮演着总控中心的角色,通过不间断地与各个工作节点(Node)通信来维护整个集群的健康工作状态,集群中各资源对象的状态则被保存在etcd数据库中。在正式环境中应确保Master的高可用,并启用安全访问机制,至少包括以下几方面。Master的kube-apiserver、kube-c......
  • 以二进制文件安装K8S之创建CA根证书
    为etcd和Kubernetes服务启用基于CA认证的安全机制,需要CA证书进行配置。如果组织能够提供统一的CA认证中心,则直接使用组织颁发的CA证书即可。如果没有统一的CA认证中心,则可以通过颁发自签名的CA证书来完成安全配置。如下以通过颁发自签名的CA证书来完成安全配置。etcd和Kubernet......