Node-RSA. Encrypt from Express server, Decrypt React client

Viewed 47

I am trying to send an encrypted string from my server to the client in which it's consumed immediately in a function call. The information is not super sensitive I just want to do it this way haha.

When I encrypt and decrypt on the server it works but when I decrypt from my client I get

decrypted ~��N}������������F����0$�x[��Iʦた��=���n���G�q�(��Ͽ/���!}oU�
���W��_���
�ܧ�����Z�����9[���V��B��F��+߻�f��@���f��\�������Sꖙ��]W��qO���G:o�HbI�ODK��0�X� l���WD���B/E3��d�L�q��W���L`�\Y���8-0�$���W��=�����K$h��>����~j�m�_��c��ʐ��y���<���>{L����jS(K��������-�w������O���@�x
4g

Server code

let keypub = new NodeRSA(`${process.env.RSA_PUBLIC}`);
let keypriv = new NodeRSA(`${process.env.RSA_PRIVATE}`);

class ipfsDAO {

static async getTokenURI(req, res, next) {
    if(nft_indexes.length >= 1) {
        try {
            const encrypted_uri = keypub.encrypt(`${baseURL}${i}.json?filename=${i}.json`, 'base64');
            let decrypted = keypriv.decrypt(encrypted_uri, 'utf-8')
            console.log("encrypted  "+ encrypted_uri) 
            console.log("decryte3d  "+ decrypted)
            return encrypted_uri
        } catch (err) {
            console.log("(SERVER) getTokenURI ERROR: " + err);
        }      
    }    
}   

Client code

  const key = new NodeRSA(`${process.env.REACT_APP_RSA_PRIVATE}`);
  key.setOptions({encryptionScheme: 'pkcs1'})

  try {
    await fetch(process.env.REACT_APP_TOKEN_URI_ROUTE)
      .then( res => { return res.json() })
      .then( async encryptedTokenURI => {
        console.log("encrypted  " + encryptedTokenURI.data)
        const decryptedTokenURI = key.decrypt(encryptedTokenURI.data, 'utf8');

        console.log("decrypted " +decryptedTokenURI)
      })
  
    //setToggleMint(true)
  } catch (error) {
    console.log(error);
  }
0 Answers
Related