如何在Python中将UTF-8加密成A-Z以外的形式?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Python中将UTF-8加密成A-Z以外的形式?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1925字,纯文字阅读大概需要3分钟。
内容图文
![如何在Python中将UTF-8加密成A-Z以外的形式?](/upload/InfoBanner/zyjiaocheng/670/14e0d97706434672915f9ab2e3f95c11.jpg)
许多年前,我在Windows上用C#编写了一个程序,该程序使用caeser chipher(我原本以为是)“加密”文本文件.
那时,我想要的字符不仅是A-Z,0-9,而且使之成为可能,但从未考虑过背后的实际理论.
查看一些文件,并将其与this website进行比较,看来UTF-8正在转移.
我启动了Windows VM(因为现在正在使用Linux)并输入了以下内容:abcdefghijklmnopqrstuvwxyz
它生成了一个类似于十六进制的文本(移位了15次):
70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f c280 c281 c282 c283 c284 c285 c286 c287 c288 c289
我怎样才能使十六进制看起来像这样?
61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a
还是有任何更容易/更好的方法来做到这一点?
更新
我正在使用Python 3.5.3,这是到目前为止的代码:
import sys
arguments = sys.argv[1:]
file = ""
for arg in arguments:
if arg[0] != "-":
file = arg
lines = []
with open(file) as f:
lines = f.readlines()
for line in lines:
result = 0
for value in list(line):
#value = "0x"+value
temp=value.encode('utf-8').hex()
temp+=15
if(temp>0x7a):
temp-=0x7a
elif(temp<=0):
temp+=0x7a
#result = result + temp
print (result)
不幸的是,我暂时没有C#源代码.我可以尝试找到它
解决方法:
假设您输入的是ASCII文本,最简单的解决方案是将ASCII编码/解码并使用内置方法ord()和chr()从字符转换为字节值,反之亦然.
请注意,temp值不能小于0,因此可以删除第二个if语句.
注意:这超出了问题的范围,但是我也注意到您正在进行参数解析.我强烈建议您改用argparse,因为它非常容易,并且为您免费提供了很多额外的功能(即,如果您使用’–help’选项启动应用程序,它将执行错误检查并打印出很好的帮助消息).请参见下面的示例代码:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(dest='filenames', metavar='FILE', type=str, nargs='+',
help='file(s) to encrypt')
args = parser.parse_args()
for filename in args.filenames:
with open(filename, 'rt', encoding='ascii') as file:
lines = file.readlines()
for line in lines:
result = ""
for value in line:
temp = ord(value) # character to int value
temp += 15
if temp > 0x7a:
temp -= 0x7a
result += chr(temp) # int value to character
print(result)
内容总结
以上是互联网集市为您收集整理的如何在Python中将UTF-8加密成A-Z以外的形式?全部内容,希望文章能够帮你解决如何在Python中将UTF-8加密成A-Z以外的形式?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。