因为不是Java程序员, 算法什么的也不是很懂, 所以来求助.
先有2个文件:
RSAHelper.java:
public class RSAHelper
{
public static String encrypt(String paramString)
throws Exception
{
return Base64Utils.encode(RSAUtils.encryptByPrivateKey(paramString.getBytes(), "MKC0hqEIwIuQ== (太长只截取了一部分)"));
}
}
RSAUtils.java:
public static byte[] encryptByPrivateKey(byte[] paramArrayOfByte, String paramString)
throws Exception
{
paramString = new PKCS8EncodedKeySpec(Base64Utils.decode(paramString));
paramString = KeyFactory.getInstance("RSA").generatePrivate(paramString);
Cipher localCipher = getCipher();
localCipher.init(1, paramString);
int k = paramArrayOfByte.length;
ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
int j = 0;
int i = 0;
if (k - j > 0)
{
if (k - j > 117) {}
for (paramString = localCipher.doFinal(paramArrayOfByte, j, 117);; paramString = localCipher.doFinal(paramArrayOfByte, j, k - j))
{
localByteArrayOutputStream.write(paramString, 0, paramString.length);
i += 1;
j = i * 117;
break;
}
}
paramArrayOfByte = localByteArrayOutputStream.toByteArray();
localByteArrayOutputStream.close();
return paramArrayOfByte;
}
是通过第一个文件(RSAHelper.class)中的 encrypt
函数来加密字符串的:RSAHelper.encrypt("hello world.")
但是貌似跟平常rsa不太一样, 这个是私钥加密的, 好像只有私钥.
现在想使用其他语言实现同样效果(JS或PHP), 能计算出同样的值即可.