删除并重新添加标点符号Java

时间:2016-09-09 03:05:14

标签: java encryption cryptography plaintext

所以我有一些文字,我必须传递给playfair密码进行加密。问题是我想保留字符串中使用的标点符号。例如"蒂米,你最喜欢的颜色是什么?"可能是我要加密的字符串。我需要一种方法,每当文本被加密时,它会删除标点,然后将其添加回输出中,因此对于上面的示例,我可能会得到" chds,xgdd'一个ywte gdfabyqt olshf?"。当消息被解码时,我还需要能够做同样的事情。任何帮助都是有用的!

PS:关键部分不需要任何帮助。只是PT到CT的标点符号保存。

2 个答案:

答案 0 :(得分:0)

您可以创建一个大小等于原始字符串的char[],并使用该字符串中的标点符号对其进行预先播种。然后,当您获得加密/解密的String时,只需循环遍历新String中的每个字符,并将它们放在char[]跳过标点符号已填充的字符串上。然后从char[]创建一个字符串。

答案 1 :(得分:0)

在我看来,你只想加密'纯文本',留下所有非字母数字字符集。如果是这种情况,那么您可以创建自己的数据结构,如:

class StringElement{
   String contentToEncrypt;
   Boolean shouldEncrypt;
  }

您可以将字符串转换为列表/哈希/数组。在这样做时,您必须将字符串拆分为其组件,并决定是否应对该组件进行加密,例如蒂米,你最喜欢的颜色是什么?,可能会变成{[“Timmy”,true],[“,”,false] ...}来加密“Timmy”,但要从加密中留下“,”。