Google App Engine中的RSA

茶酚醛

我正在尝试从服务器端解密RSA字符串。从本地服务器运行代码时,它的工作效果很好,但是将应用程序部署到GAE时,该方法返回一个空字符串(不为null)。

(字符串输入是要解密的二进制数据的BASE64表示形式)

这是我的代码:

private static String decrypt(String pwd) {
    byte[] input = Base64.decode(pwd);


    try {
        rsaCipher = Cipher.getInstance("RSA/ECB/NoPadding");
    } catch (NoSuchAlgorithmException e) {
        return null;
    } catch (NoSuchPaddingException e) {
        return null;
    }

    KeyFactory keyFactory;
    try {
        keyFactory = KeyFactory.getInstance("RSA");
    } catch (NoSuchAlgorithmException e) {
        return null;
    }

    String modString = "*********";
    String privateExponentString = "*********";

    RSAPrivateKeySpec prvKeySpec = new RSAPrivateKeySpec(new BigInteger(modString), new BigInteger(privateExponentString));
    RSAPrivateKey prvKey;


    try {
        prvKey = (RSAPrivateKey) keyFactory.generatePrivate(prvKeySpec);
    } catch (InvalidKeySpecException e) {
        return null;
    }

    try {
        rsaCipher.init(Cipher.DECRYPT_MODE, prvKey);
    } catch (InvalidKeyException e) {
        return null;
    }
    byte[] cipherText;
    try {
        cipherText = rsaCipher.doFinal(input);
    } catch (IllegalBlockSizeException e) {
        return null;
    } catch (BadPaddingException e) {
        return null;
    }
    return new String(cipherText);
}

在远程运行时,我在服务器端做了一些调试。我发现该功能:

rsaCipher.doFinal(input);

当每个项目都包含“ 0”时,返回一个字节数组。

请指教,

谢谢您,最好的问候,诺姆·科恩(Noam Cohen)

茶酚醛

我发现了错误,输出字符串始终为128位长,而所需的未加密字符串在末尾,而所有其他字节均为(空,ASCII码0)。Google日志不会显示所有字符串,并且看起来像是空的。我只是循环输出字符串中的每个字符,然后将每个字符的ASCII码都不同于0的字符复制到我的字符串中。

我希望这能对某人有所帮助,诺姆

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google App Engine中的交易隔离

来自分类Dev

Google App Engine + Python中的REST API?

来自分类Dev

Google App Engine NDB中的层次结构

来自分类Dev

Google App Engine帐单

来自分类Dev

Google App Engine中的Xlsxwriter错误

来自分类Dev

Google App Engine中的XMPP支持

来自分类Dev

IPSEC Google App Engine

来自分类Dev

Google App Engine中的网址大小

来自分类Dev

Google App Engine与Firebase

来自分类Dev

Google App Engine上的Node App中的Socket IO

来自分类Dev

Google App Engine中包含的Javamail版本

来自分类Dev

在Google App Engine中连接到Google Cloud SQL

来自分类Dev

App Engine Google Cloud中的部署失败

来自分类Dev

在Google App Engine中全局运行MongoDB

来自分类Dev

在Google App Engine中启动App Engine模块

来自分类Dev

在Eclipse中清理Google App Engine项目

来自分类Dev

Google App Engine(Java)中的XSLT

来自分类Dev

在Google App Engine中查询日期时间

来自分类Dev

在DataStore Google App Engine中执行IN查询

来自分类Dev

Google App Engine与 Google Apps脚本(在Business Apps中)

来自分类Dev

objectify / Google App Engine中的外键

来自分类Dev

无法在Google App Engine中运行Coursebuilder

来自分类Dev

Google App Engine中的Spring MVC路由

来自分类Dev

Google App Engine中的Spring OAuth失败

来自分类Dev

Google App Engine中的app.yaml配置

来自分类Dev

Google App Engine关于NDB中的密钥

来自分类Dev

在Google App Engine中公开隐藏应用

来自分类Dev

跨Google App Engine中的模块导入

来自分类Dev

Google App Engine 中的会话亲缘关系