所以我有一些文字,我必须传递给playfair密码进行加密。问题是我想保留字符串中使用的标点符号。例如"蒂米,你最喜欢的颜色是什么?"可能是我要加密的字符串。我需要一种方法,每当文本被加密时,它会删除标点,然后将其添加回输出中,因此对于上面的示例,我可能会得到" chds,xgdd'一个ywte gdfabyqt olshf?"。当消息被解码时,我还需要能够做同样的事情。任何帮助都是有用的!
PS:关键部分不需要任何帮助。只是PT到CT的标点符号保存。
答案 0 :(得分:0)
您可以创建一个大小等于原始字符串的char[]
,并使用该字符串中的标点符号对其进行预先播种。然后,当您获得加密/解密的String时,只需循环遍历新String中的每个字符,并将它们放在char[]
跳过标点符号已填充的字符串上。然后从char[]
创建一个字符串。
答案 1 :(得分:0)
在我看来,你只想加密'纯文本',留下所有非字母数字字符集。如果是这种情况,那么您可以创建自己的数据结构,如:
class StringElement{
String contentToEncrypt;
Boolean shouldEncrypt;
}
您可以将字符串转换为列表/哈希/数组。在这样做时,您必须将字符串拆分为其组件,并决定是否应对该组件进行加密,例如蒂米,你最喜欢的颜色是什么?,可能会变成{[“Timmy”,true],[“,”,false] ...}来加密“Timmy”,但要从加密中留下“,”。