我希望能找到一种简单的搜索方式,并在Notepad ++中进行替换,以便通过以每秒随机的字母和数字(“其他”)字符填充文本,然后通过另一个宏再次将其反转来稍微混淆文本。
所以:
banana
将成为:
bma0ndaNn4aR
(b?a?n?a?n?a?)
...然后可以通过使用退格键删除所有其他字符来再次撤消此操作。
...
到目前为止,我发现了这种方法:
(?<=.)(?!$)
How to insert spaces between characters using Regex?
但是据我所知,这实际上并没有捕获,因此我不能用它代替我发现的用于打印随机字母和数字的表达式,例如:
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])$
我敢肯定对此进行了调整,然后可以通过将相同的搜索替换为\b
来颠倒一切。
答案 0 :(得分:0)
有更好的方法,但是您可以使用以下python原型作为创建自己的脚本的起点:
import string
import random
inputText = 'banana'
#encoding
obfuscatedText = ''.join([x + random.choice(string.ascii_letters+string.digits) for x in inputText])
print(obfuscatedText)
#decoding
originalText = ''.join([x for x in obfuscatedText][0:len(obfuscatedText)-1:2])
print(originalText)
说明:
编码:
[x for x in inputText]
将根据输入字符串生成一个字符数组random.choice(string.ascii_letters+string.digits)
需要一个字符
来自string.ascii_letters
和string.digits
的联合x + random.choice(string.ascii_letters+string.digits)
通过将输入的每个字符与生成的char串联来创建2个char字符串。''.join()
操作,您可以从char数组中创建一个字符串解码:
[x for x in obfuscatedText][0:len(obfuscatedText)-1:2]
仅允许您获取0,2,4,6,...
上的''.join()
操作将从char数组重新生成一个字符串执行:
$ python obfuscate.py
biaLncaIn4aE
banana