将加密的PHP字符串解密为Android Java

将加密的PHP字符串解密为Android Java,java,php,android,base64,Java,Php,Android,Base64,我想用PHP加密学生的期末成绩,用Android Java解密。我引用了我的代码,但它返回了错误的值 这是我的PHP加密函数 function encode5t($value1){ for($i=0;$i<3;$i++) { $value1=base64_encode(strrev($value1)); } return $value1; } 这是我的Java代码 vGrades = json.getJSONArray(

我想用PHP加密学生的期末成绩,用Android Java解密。我引用了我的代码,但它返回了错误的值

这是我的PHP加密函数

function encode5t($value1){
      for($i=0;$i<3;$i++)
    {
        $value1=base64_encode(strrev($value1));
    }
    return $value1;
    }
这是我的Java代码

    vGrades = json.getJSONArray(TAG_POSTS);
    for (int i = 0; i < vGrades.length(); i++) {
    JSONObject c = vGrades.getJSONObject(i);

    String cSemester = c.getString(TAG_SEMESTER);
    String cSchoolYear = c.getString(TAG_SCHOOLYEAR);
    String cSubjectCode = c.getString(TAG_SUBJECTCODE);
    String cDescription = c.getString(TAG_DESCRIPTION);
    String encrypted_string = c.getString(TAG_FINALGRADE);
    String nCGrade = c.getString(TAG_COMPLETIONGRADE);
    String nCredit = c.getString(TAG_CREDIT);
    HashMap<String, String> map = new HashMap<String, String>();

    try{
    byteArray = Base64.decode(encrypted_string, Base64.DEFAULT);
    decrypt = new String(byteArray, "UTF-8");
    }catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }  // this is where I want to decrypt it.

    nFGrade = decrypt;
    map.put(TAG_SEMESTER, cSemester);
    map.put(TAG_SCHOOLYEAR, cSchoolYear);
    map.put(TAG_SUBJECTCODE, cSubjectCode);
    map.put(TAG_DESCRIPTION, cDescription);
    map.put(TAG_FINALGRADE, nFGrade);
    map.put(TAG_COMPLETIONGRADE, nCGrade);
    map.put(TAG_CREDIT, nCredit);
    ViewGrades.add(map);
    }
vGrades=json.getJSONArray(TAG_POSTS);
对于(int i=0;i
PHP加密正在运行。。但当我解密它时,系统会返回另一个加密值。。例如,fGrade为1.0

PHP加密字符串值为:“PT1RVERSRGU=”

Java解密的值为:“==QTDRDe”


我哪里出错了?我需要帮助,谢谢大家

Base64没有密钥,任何人都可以解码、更改和替换它。但是,如果你只是想挫败随意的用户,那么这可能就是你所需要的。您需要定义您要保护的人,以防知道每个方案都可能被破坏


要加密数据,请使用。加密是不容易得到正确的。PHP
mcrypt
加密函数有缺陷,请勿使用。考虑一下,它提供了一个完整的解决方案,包括认证和密钥推导。

您在PHP代码中对字符串进行了3次加密。每次在“加密”之前将其反转。在java代码中,您只需要“解密”一次,而不是将其反转。请注意,您最多只能对字符串进行编码,而base64是一个容易找到的地方。base64不是加密,只是编码。任何人都可以解码。Base64是一种编码,而不是加密。加密使用密钥进行加密和解密,该密钥必须保密。@MargaretBloom-谢谢你的建议。。我已经在Java上解码了字符串..@zaph-这个Base64不安全吗?请给我一个用Java和PHP进行加密和解密的链接好吗?提前谢谢!
    vGrades = json.getJSONArray(TAG_POSTS);
    for (int i = 0; i < vGrades.length(); i++) {
    JSONObject c = vGrades.getJSONObject(i);

    String cSemester = c.getString(TAG_SEMESTER);
    String cSchoolYear = c.getString(TAG_SCHOOLYEAR);
    String cSubjectCode = c.getString(TAG_SUBJECTCODE);
    String cDescription = c.getString(TAG_DESCRIPTION);
    String encrypted_string = c.getString(TAG_FINALGRADE);
    String nCGrade = c.getString(TAG_COMPLETIONGRADE);
    String nCredit = c.getString(TAG_CREDIT);
    HashMap<String, String> map = new HashMap<String, String>();

    try{
    byteArray = Base64.decode(encrypted_string, Base64.DEFAULT);
    decrypt = new String(byteArray, "UTF-8");
    }catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }  // this is where I want to decrypt it.

    nFGrade = decrypt;
    map.put(TAG_SEMESTER, cSemester);
    map.put(TAG_SCHOOLYEAR, cSchoolYear);
    map.put(TAG_SUBJECTCODE, cSubjectCode);
    map.put(TAG_DESCRIPTION, cDescription);
    map.put(TAG_FINALGRADE, nFGrade);
    map.put(TAG_COMPLETIONGRADE, nCGrade);
    map.put(TAG_CREDIT, nCredit);
    ViewGrades.add(map);
    }