字符串的每个字符的随机字母字符加密

时间:2016-04-26 20:48:19

标签: java encryption

我试图写一个代码来加密一个三个字母的单词,比如单词" dog"加密了一个示例输出可能是mii,laz,fqy,zlp。我目前正专注于加密方法。虽然取代了这封信,但我遇到了一些麻烦。它在第22行,我将encryptString =替换为ch。我最终必须在框架和面板中提出这个想法,但我稍后会解决,现在我需要完成具体的方法和想法。

//*******************************************************
// Question2.java       Section: CSIT112_01SP16
//
// Author Usman Dawud Bashiru.
// Encrpyts and Decrpyts a three letter english word.
//
//*******************************************************
import java.util.Scanner;
import java.util.Random;

public class Question2 implements Encode{

   String userInput, encryptString;
   int number, length;
   char letter, ch, firstch, secondch, thirdch;

   public String encrypt(String userInput){
      String result = "";
      this.userInput = userInput;
      for(int i = 0; i < userInput.length(); i++){
         ch = userInput.charAt(i);
         encryptString = userInput.replace(ch, (char)((int)(Math.random()*26) +96));
         result += encryptString;
      }
      System.out.println(result);
      return null;
   }

   public String decrypt(String encrpytString){
      this.encryptString = encrpytString;
      return null;
   }
   public static void main(String[] args){

      Question2 passcode = new Question2();
      passcode.encrypt("dog");
   }

这是我的输出,我知道我有点接近,但我现在正在撞墙。

 ----jGRASP exec: java Question2
jogdwgdos

 ----jGRASP: operation complete.

2 个答案:

答案 0 :(得分:0)

您可以使用此替换encrypt方法。

   public String encrypt(String userInput){
      String result = userInput;
      for(int i = 0; i < userInput.length(); i++){
         ch = userInput.charAt(i);
         result = result.replace(ch, (char)((int)(Math.random()*26) +96));
      }
      System.out.println(result);
      return result;
   }

但是,您的加密方案不会像使用随机加密那样工作。此外,replace方法将替换该字符的所有匹配项。因此,如果您正在加密字符串测试,则行result.replace将替换所有t字符。

答案 1 :(得分:0)

我想我明白了。我不确定这是否是最好的解决方案,但它按计划用于加密方法。

public String encrypt(String userInput){
      String result = "";
      this.userInput = userInput;
      for(int i = 0; i < userInput.length(); i++){
         ch = userInput.charAt(i);
         encryptString = userInput.replace(ch, (char)((int)(Math.random()*26) +97));
         result += encryptString.charAt(i);
      }
      System.out.println(result);
      return null;
   }

这是我的输出:

 ----jGRASP exec: java Question2
xng

 ----jGRASP: operation complete.