我正在尝试在 python 和 java/android 之间配置非对称加密。用例是安全地存储用户密码(使用公钥),启用对服务器(具有私钥)的重新身份验证。
我已经在 Python 和 Java 中分别使用了加密算法,但无法让我的 Python 端解密在 Java 中生成的密文。我认为两个最可能的问题是
为了在这里创建一个完整的示例,我将复制私钥和公钥,然后将重新生成一个新的集合以供实际使用。
Java 导入
// Java imports
import android.util.Base64;
import android.util.Log;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.MGF1ParameterSpec;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import javax.crypto.Cipher;
import javax.crypto.spec.OAEPParameterSpec;
import javax.crypto.spec.PSource;
Run Code Online (Sandbox Code Playgroud)
Java 加密代码- 我为代码格式/宽度道歉...
public class RSAEncryption {
public void encrypt (String ... strings) throws Exception {
// Load in public key, remove escape characters, headers, footers:
String public_key_string = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6kTFJl+6jG2rfYlZxtFi\nzajOgvKgInJHOa4i3G5vB9c7f7kzsTMOmeg5YHn3LNndg4Wx4AyfN5fbcNGg+KmJ\nK91b2lkgFy7pVEhWfzK4/yqk0liG7MwuN0G8GqUjIqJOXPS6lXB9Zr3n9QyTkKGV\n9cnNVPV1CNuN3bOu0t8Mu3fvZ+z8edq/cfUpTXwDdfRmZ6WeWxxqogK2uCwmneEN\n8kqyWE4OxhyqLJMw9mCGHOqTVgJUnvjMBezywr6s3vIcs2Q7CnxQx/g/GTqhUxLS\nHDlyAFDbhU4BWkCHrCa/nTyIFgXC9X4YRpQd24xfGXJjB2qUVv2H0O5FoRJAEYvS\nfQIDAQAB\n-----END …Run Code Online (Sandbox Code Playgroud)