Android 加密应用 - 寻找隐藏的密码
package com.example.ilililililil;
import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity { public static Encoder encoder; public static MainActivity mainActivity;
/* access modifiers changed from: protected */
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView((int) R.layout.activity_main);
encoder = new Encoder();
mainActivity = this;
((Button) findViewById(R.id.button)).setOnClickListener(new View.OnClickListener((EditText) findViewById(R.id.edit_text)) {
public final /* synthetic */ EditText f$1;
{
this.f$1 = r2;
}
public final void onClick(View view) {
MainActivity.this.lambda$onCreate$0$MainActivity(this.f$1, view);
}
});
}
public /* synthetic */ void lambda$onCreate$0$MainActivity(EditText editText, View view) {
System.out.println(encoder.encode(editText.getText().toString()));
if (encoder.encode(editText.getText().toString()).equals('棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌')) {
Toast.makeText(this, 'YES', 0).show();
} else {
Toast.makeText(this, 'NO', 0).show();
}
}
} package com.example.ilililililil;
public class Encoder { private int key = 123456789;
public String encode(String str) {
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray()) {
sb.append((char) (c ^ this.key));
}
return sb.toString();
}
}'}
解题思路:
- 分析代码: 观察代码结构,发现MainActivity 类负责界面交互,Encoder 类负责加密操作。2. 理解加密算法: 代码中使用的加密算法是简单的异或运算,将每个字符与密钥进行异或操作。3. 寻找密钥: 代码中明确给出了密钥为 123456789。4. 反向解密: 通过反向解密,将目标字符串 '棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌' 与密钥进行异或运算,即可得到原始字符串。
**解题代码:**javapublic class Decoder { private int key = 123456789;
public String decode(String encodedStr) { StringBuilder sb = new StringBuilder(); for (char c : encodedStr.toCharArray()) { sb.append((char) (c ^ key)); } return sb.toString(); }
public static void main(String[] args) { Decoder decoder = new Decoder(); String encodedStr = '棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'; String originalStr = decoder.decode(encodedStr); System.out.println('原始字符串: ' + originalStr);
原文地址: https://www.cveoy.top/t/topic/pWRH 著作权归作者所有。请勿转载和采集!