Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android(Java)中加密文本_Java_Android - Fatal编程技术网

在Android(Java)中加密文本

在Android(Java)中加密文本,java,android,Java,Android,请帮我更正代码。字符串未加密 private static String Encrypt(String val) { int len = val.length(); int[] k = new int[len]; for (int n = 0; n < (len-1); n++) k[n] += 5; val = k.toString(); return val; } 私有

请帮我更正代码。字符串未加密

private static String Encrypt(String val)    
{    
    int len = val.length();    
    int[] k = new int[len];    
    for (int n = 0; n < (len-1); n++)    
        k[n] += 5;    
    val = k.toString();  
    return val;    
}
私有静态字符串加密(字符串val)
{    
int len=val.length();
int[]k=新的int[len];
对于(int n=0;n<(len-1);n++)
k[n]+=5;
val=k.toString();
返回val;
}

您正在向尚未初始化的数组中添加5,这意味着它包含所有零

我猜你是想实施这个计划?为此,原始字符串应该出现在某个地方。此外,不能更改字符串的值。此外,您应该考虑在255周围包装,以便不超出有效字符范围(0…255)

之外。 功能的工作版本可能如下所示:

private static String Encrypt(String val) {
    StringBuffer sb;
    for (int n = 0; n < val.length(); n++) {
        sb.Append((char)((val.charAt(n) + 5) % 255));
    }
    sb.toString();
}
private static String Encrypt(String val) {
    int len = val.length();
    char[] k = new char[len];
    for (int n = 0; n < len; n++) {
        k[n] = (char)(val.charAt(n) + 5);
    }
    return new String(k);
}
私有静态字符串加密(字符串val){
对某人施加压力;
对于(int n=0;n
两个旁注:

  • 我希望你这样做不是为了一个安全问题严重的地区?因为凯撒密码早就被破解了;此外,使用固定密钥与安全密钥相反。 相反,请考虑使用当前被认为是安全的算法(如AES)。

  • 你的代码格式很容易让人误解代码的实际功能;由于没有括号,for循环实际上只会重复一行
    k[n]=…
    ,但缩进表明不是这样


  • 您正在使用未初始化的数组。您应该使用来自输入
    字符串的
    char

    此外,您正在将
    int[]
    转换为
    String
    错误。应该是这样的:

    private static String Encrypt(String val) {
        StringBuffer sb;
        for (int n = 0; n < val.length(); n++) {
            sb.Append((char)((val.charAt(n) + 5) % 255));
        }
        sb.toString();
    }
    
    private static String Encrypt(String val) {
        int len = val.length();
        char[] k = new char[len];
        for (int n = 0; n < len; n++) {
            k[n] = (char)(val.charAt(n) + 5);
        }
        return new String(k);
    }
    

    哈,你到底想实现什么?你明白加密和编码的区别吗?非常感谢你的信息。。在这里,我有一个任务,以增加5个字母在每个字(需要加密和解密)。所以我试着去做。我会检查并让你知道。对不起,如果我错了。嗨,我也得到了这个代码的错误。因为我为安卓工作。当我调试和模拟器时,它的抛出错误力关闭。如果我去掉这个,它会工作的很好。非常感谢。。我正在检查这个。将向您更新statushi here K赋值不允许“返回新字符串(K)”;它的抛出错误将“K”删除。现在这里也将其设置为“返回K.toString();”。但是它没有得到加密。。请帮助它应该
    返回新字符串(k)。只是复制粘贴整个功能,它的工作。嗨。。我得到1234的输出——”@|@8@A@..:(为您的代码。