首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node-rsa解密不起作用

node-rsa解密不起作用
EN

Stack Overflow用户
提问于 2015-06-08 11:42:01
回答 1查看 484关注 0票数 1

我尝试实现rsa公钥系统。服务器是使用node-js实现的,并使用node-rsa库来加密/解密rsa。

客户端是用java实现的。

在认证部分,客户端(Java)使用服务器的公钥加密客户端的id和密码,并使用http post向服务器发送post。

因此服务器可以很好地接收它们,但是在node-rsa解密函数中,什么也没有发生,http请求被拒绝,返回500

客户端代码如下

代码语言:javascript
复制
public static boolean REQ_AUTH(String user_id, String user_pw )
{
    InputStreamReader ret = null;
    try
    {
        JSONObject obj = new JSONObject();
        obj.put("user_id", "waps12b");
        obj.put("user_pw", "password");

        String cipher = VoteUtility.EncryptRSA(obj.toString());
        ret = PostHTTP(API_URL.AUTH, "cipher=" + cipher);
        JSONParser parser = new JSONParser();
        JSONObject json = (JSONObject)parser.parse(ret);
        ret.close();


        String result = (String)json.get(JSON_KEY.Result);
        if(result.equals("FALSE"))
            return false;

        VoteUtility.Setting((String)json.get(JSON_KEY.Kp));
        RN = (String)json.get(JSON_KEY.RN);
        return true;
    }catch(Exception ex)
    {
        ex.printStackTrace();
    }
    return false;
}

服务器代码如下

代码语言:javascript
复制
router.all('/auth', function(req, res){
    var cipher = req.body.cipher;
    console.log('[cipher] : ' + cipher);

    var buf = new Buffer(cipher,'hex');
    console.log('[buf] : ' + buf.toString('hex'));

    var decrypted = key.decrypt(buf);
    console.log('[plain] : ' + decrypted);
}

和下面的服务器日志

代码语言:javascript
复制
[cipher] : 46641844ffffff8d18ffffffb6ffffff8d6fffffffcf37ffffffd3ffffffa520721407ffffffbf7810ffffffc87d7925ffffffae16ffffffc9620f356872ffffff892828ffffffb533ffffffb324ffffffffffffffeefffffffa6b78ffffff8effffffb1ffffffb3ffffffdd681affffffae405d105affffff9626ffffff85fffffff8ffffffc9fffffff22c69ffffffa87efffffff8ffffffe64e082fffffffd247500f176dffffffedffffffcc6c5affffffc712ffffff9136ffffffbe26672b206cffffffa56dffffffa4ffffff85ffffffc0ffffffff0b6936fffffffb61ffffff8a0f3effffff8effffff965d5851ffffffaeffffff9dffffffb1417c57ffffffbfffffffee5affffff80ffffff9bffffffac0bffffff9cffffffaf6377327d
[buf] : 46641844ffffff8d18ffffffb6ffffff8d6fffffffcf37ffffffd3ffffffa520721407ffffffbf7810ffffffc87d7925ffffffae16ffffffc9620f356872ffffff892828ffffffb533ffffffb324ffffffffffffffeefffffffa6b78ffffff8effffffb1ffffffb3ffffffdd681affffffae405d105affffff9626ffffff85fffffff8ffffffc9fffffff22c69ffffffa87efffffff8ffffffe64e082fffffffd247500f176dffffffedffffffcc6c5affffffc712ffffff9136ffffffbe26672b206cffffffa56dffffffa4ffffff85ffffffc0ffffffff0b6936fffffffb61ffffff8a0f3effffff8effffff965d5851ffffffaeffffff9dffffffb1417c57ffffffbfffffffee5affffff80ffffff9bffffffac0bffffff9cffffffaf6377327d
POST /api/auth 500 421.025 ms - 1158    

我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2020-05-30 20:55:52

在node js中试用

代码语言:javascript
复制
const NodeRSA   = require('node-rsa');
const key       = new NodeRSA('-----BEGIN RSA PRIVATE KEY-----PRIVATE_key----- 
END RSA PRIVATE KEY-----");
const text = 'helo or array';
const encrypted = key.encrypt(text, 'base64');
console.log('encrypted: ', encrypted);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30700940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档