python bitarray_python 字符串 转 bit, bitarray 异或加密

Python中异或加密要将str 转为 bitarray, 提示: int类型和纯数字的字符串也可以异或处理, 可能更方便

from bitarray import bitarray

def str2bitarray(msg):  # msg 为str

msg_2 = ""  # 转为1010拼接成字符串

for a in msg.encode('utf-8'):

a_16 = hex(a)[2:] # ascll 码16进制 str

a_10 = int("1" + a_16, 16)  # 10进制 int, 防止转二进制最高为0丢失, 所以最高位前加1 , 10进制 int

a_2 = bin(a_10)[3:] # 二进制 str, 利用ascll码值是8bit, 最前面可以加1,  在切片,去掉

msg_2 += a_2

return bitarray(msg_2)

def bitarray2str(bitarray_obj):  #  bitarray 转str

return bitarray_obj.tostring()

def str_to_hex(s):

return ' '.join([hex(ord(c)).replace('0x', '') for c in s])

def hex_to_str(s):

return ''.join([chr(i) for i in [int(b, 16) for b in s.split(' ')]])

def str_to_bin(s):

return ' '.join([bin(ord(c)).replace('0b', '') for c in s])

def bin_to_str(s):

return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])

def encryption_bit(msg):  # 利用 异或运算 加密

#  i_key为  int  任意值

# msg 为 str 任意值

i_plain = int("1" + ''.join([bin(int('1' + hex(c)[2:], 16))[3:] for c in msg.encode('utf-8')]))  # 要加密的str 转int

s_cipher = str(i_plain ^ i_key)

return s_cipher

def decryption_bit(s_cipher):  # 解密, i_key 要和加密的一样

s_plain = str(int(s_cipher) ^ i_key)[1:]

msg = bitarray(s_plain).tostring()

return msg

Python 字符串

Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. Python访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/py ...

Python 字符串处理大全.

Python 字符串 字符串是Pyhton中常用的数据类型,我们可以使用引号来创建字符串 . 创建字符串很简单 , 就不说了 . Python 访问字符串中的值 鬼叔本着简洁 使用的设计目的 , 在设 ...

python字符串内容替换的方法(转载)

python字符串内容替换的方法 时间:2016-03-10 06:30:46来源:网络 导读:python字符串内容替换的方法,包括单个字符替换,使用re正则匹配进行字符串模式查找与替换的方法.   ...

python字符串、列表和文件对象总结

1.字符串是字符序列.字符串文字可以用单引号或者双引号分隔. 2.可以用内置的序列操作来处理字符串和列表:连接(+).重复(*).索引([]),切片([:])和长度(len()).可以用for循环遍历 ...

Python字符串(Str)详解

字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可 字符串的格式 b = "hello itcast. ...

python和c#通用一致的des加密采用CBC和PKCS7

在python下可以下载pydes 下载地址为 http://pydes.sourceforge.net/ 在c#下实现des加密较为简单,如下: using System; using System ...

【276】◀▶ Python 字符串函数说明

参考:Python 字符串函数 01   capitalize 把字符串的第一个字符大写,其他字母变小写. 02   center 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串. ...

Python 字符串和数字

Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

Python 字符串Ⅱ

Python 字符串格式化 Python 支持格式化字符串的输出 .尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中. 在 Python 中,字符 ...

随机推荐

HOJ 1004: Prime Palindromes

问题:输入两个整数 a 和 b (5 <= a < b <= 1,000,000,000),输出 [a, b] 内的所有回文质数. 最简单的暴力解法是依次遍历 [a, b] 范围内的 ...

dev Gridcontrol根据其cell里面的值显示不同颜色

要改变cell值得颜色 需要用到cellTemplate和convert

SuperSocket入门(五)-常用协议实现模版及FixedSizeReceiveFilter示例

Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难以避免.SuperSocket内置了命令行 ...

经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能

说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后, ...

使用withCount后再使用select设置查询的字段。就找不到withCount的数据了

https://laravelacademy.org/index.php/discussion/1021 如:Article::withCount(['comments'])->select(' ...

ruby-----render讲解

Ruby rails页面跳转代码如下: 1.render(:text => string) 2.render(:inline => string, [:type => "r ...

洛谷P5206 数树

题意: task0,给定两棵树T1,T2,取它们公共边(两端点相同)加入一张新的图,记新图连通块个数为x,求yx. task1,给定T1,求所有T2的task0之和. task2,求所有T1的task ...

Linux服务器---流量监控bandwidthd

Bandwidthd Bandwidthd是一款免费的流量监控软件,它可以用图标的方式展现出网络流量行为,并且可区分出ftp.tcp等各种协议的流量. 1.安装一些依赖软件 [root@localho ...

JS获取今天年月日

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个使用 Pythonbitarray 模块的示例: ```python from bitarray import bitarray # 创建一个包含8个位的空bitarray ba = bitarray(8) # 将第5位设置为1 ba[4] = 1 # 将第8位设置为1 ba[7] = 1 # 打印bitarray print(ba) # 将bitarray换为整数并打印 print(int(ba.to01(), 2)) ``` 这个示例创建了一个包含8个位的空 bitarray,并将第5位和第8位设置为1。然后,它打印了 bitarray,以及将 bitarray 换为整数并打印。输出应该如下所示: ``` bitarray('00100001') 33 ``` 这个示例展示了如何使用 bitarray 模块创建和操作 bitarray,以及如何将 bitarray 换为整数。 ### 回答2: 以下是一个使用Python bitarray库的示例: ```python from bitarray import bitarray # 创建一个长度为8的bitarray bit_array = bitarray(8) # 给bitarray赋值 bit_array[0] = True bit_array[1] = False bit_array[2] = True bit_array[3] = False bit_array[4] = True bit_array[5] = False bit_array[6] = True bit_array[7] = False # 输出bitarray的值 print(bit_array) # 输出:bitarray('10101010') # 获取bitarray的长度 print(len(bit_array)) # 输出:8 # 将bitarray换为整数 num = int(bit_array.to01(), 2) print(num) # 输出:170 # 创建一个长度为16的bitarray bit_array2 = bitarray(16) bit_array2.setall(False) # 将所有位设置为False # 输出bitarray2的值 print(bit_array2) # 输出:bitarray('0000000000000000') # 将整数换为bitarray num2 = 255 bit_array3 = bitarray(bin(num2)[2:].zfill(8)) print(bit_array3) # 输出:bitarray('11111111') ``` 以上示例演示了使用Pythonbitarray库创建、操作和bitarray的几个常用操作。 ### 回答3: 以下是一个使用Python中的bitarray库的示例: import bitarray # 创建一个长度为8的bitarray ba = bitarray.bitarray(8) # 将第3、4和7位设置为True(1) ba[2] = True ba[3] = True ba[6] = True # 输出bitarray的值 print(ba) # 输出:bitarray('00110010') # 将第5位设置为False(0) ba[4] = False # 输出修改后的bitarray的值 print(ba) # 输出:bitarray('00100010') # 将bitarray换为整数 num = int(ba.to01(), 2) print(num) # 输出:34 # 键入bitarray input_ba = bitarray.bitarray() input_ba.frombytes(b'&\x05') # 输出键入bitarray的值 print(input_ba) # 输出:bitarray('0010011000000101') # 将bitarray换为字节串 bytes_str = input_ba.tobytes() print(bytes_str) # 输出:b'&\x05' # 创建一个bitarray来表示布尔值列表 bool_list = [True, False, True, False] bool_ba = bitarray.bitarray(bool_list) # 输出布尔值列表的bitarray版本 print(bool_ba) # 输出:bitarray('1010')

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值