字符串

时间:2017-03-27 04:30:04

标签: java encryption

我正在为项目开发加密/解密程序。对于加密方法,用户输入一个键(全部小写没有空格),文件中的所有字母都移动了键中每个字母的值(a = 0,b = 1,c = 2等)。 / p>

实施例: Key = abc

文件:文件中的文字

加密文件:wptdt kn b himg

' W'是因为' a' (0)所以它保持' w。

'○'被' b' (1)所以它增加了1个字母到' p'等

使用密钥中的最后一个字母后,密钥将返回第一个字母。此外,空格被忽略。

我目前对如何通过键中的每个字母递增一个字母感到困惑。

public static String encryptLine(

任何帮助将不胜感激! 感谢

3 个答案:

答案 0 :(得分:0)

尝试使用此代码

public static String encrypt(String k,String l){
        String ans="";
        int index=0;
        for(int i=0;i<l.length();i++){
            if(l.charAt(i)==' '){
                continue;
            }
            ans=ans+Character.toString((char)((int)l.charAt(i)+((int)k.charAt(index)-97)));
            if(index==k.length()-1){
                index=0;
            }else{
                index++;
            }
        }
        return ans;

    }

答案 1 :(得分:0)

public static String encryptLine(String key, String line) {
    final StringBuffer encryptedLine = new StringBuffer();

    IntStream.range(0, line.length()).forEach(i->{
        int nonSpace = ((int) line.chars().limit(i+1).filter(j -> j == ' ').count());
        encryptedLine.append( line.charAt(i) == ' '? line.charAt(i): (char) (key.charAt((i - nonSpace) % key.length()) - 'a' + line.charAt(i)));
    });

    return encryptedLine.toString();
}

文字:文件中的文字 - &gt; wptdt kn b himg

然而,这只是一个快速提示。对于项目使用,预计会进行更多检查。

答案 2 :(得分:-1)

试试这个:

Source Code

public static String encrypt(String plainText, String encKey) {
    StringBuilder encryptedText = new StringBuilder();
    char[] encArray = encKey.toCharArray();
    int encArrayLen = encArray.length;
    int cnt = 0;
    for (int i = 0; i < plainText.length(); i++) {
        if (plainText.charAt(i) != ' ') {
            char c = (char) (plainText.charAt(i) + (encArray[cnt] - 'a'));
            encryptedText.append(c);
        } else {
            encryptedText.append(plainText.charAt(i));
            cnt=cnt-1;
        }
        cnt++;
        if (cnt == encArrayLen) {
            cnt = 0;
        }
    }
    return encryptedText.toString();
}