美文网首页
nodejs非对称加密简单demo实现

nodejs非对称加密简单demo实现

作者: JakeBless | 来源:发表于2023-06-18 14:21 被阅读0次
const crypto = require('crypto');

// 生成密钥对
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 2048,
});

// 公钥加密
const encryptWithPublicKey = (message) => {
  const buffer = Buffer.from(message, 'utf8');
  const encrypted = crypto.publicEncrypt(publicKey, buffer);
  return encrypted.toString('base64');
};

// 私钥解密
const decryptWithPrivateKey = (encryptedMessage) => {
  const buffer = Buffer.from(encryptedMessage, 'base64');
  const decrypted = crypto.privateDecrypt(privateKey, buffer);
  return decrypted.toString('utf8');
};

// 私钥签名
const signWithPrivateKey = (message) => {
  const sign = crypto.createSign('SHA256');
  sign.update(message);
  sign.end();
  const signature = sign.sign(privateKey);
  return signature.toString('base64');
};

// 公钥验证签名
const verifyWithPublicKey = (message, signature) => {
  const verify = crypto.createVerify('SHA256');
  verify.update(message);
  verify.end();
  return verify.verify(publicKey, signature, 'base64');
};

// 测试公钥加密和私钥解密
const message = 'Hello World!';
// const encryptedMessage = encryptWithPublicKey(message);
// console.log(`Encrypted message: ${encryptedMessage}`);
// const decryptedMessage = decryptWithPrivateKey(encryptedMessage);
// console.log(`Decrypted message: ${decryptedMessage}`);

// 测试私钥签名和公钥验证签名
const signature = signWithPrivateKey(message);
console.log(`Signature: ${signature}`);
const isSignatureValid = verifyWithPublicKey(message + '1', signature);
console.log(`Is signature valid: ${isSignatureValid}`);

相关文章

  • RSA非对称加解密原理及示例代码

    RSA非对称加解密可以实现安全传输,本文简单介绍一下其原理和实现代码 RSA加密算法 RSA加密算法是一种非对称加...

  • RSA加密

    RSA加密为非对称加密实现 对称加密:加密解密使用同一个算法 非对称加密:加密和解密使用不同算法 rsa加密原理 ...

  • JAVA与NodeJS实现AES加密

    内容要点 本文实现java与nodejs的AES加密方式如下,并可实现java加密,nodejs解密或者nodej...

  • HTTPS是如何保证安全的

    小结:简单的说,是通过对称加密来加密传输的内容,采用非对称加密来加密对称加密的密钥(不直接采用非对称加密传输内容是...

  • day12 比特币的技术原理

    比特币的技术原理 去中心化·如何实现 非对称加密、分布式存储非对称加密:加密解密的时候,使用不同密钥的加密算法。 ...

  • 视频学习《你的API还在”裸奔“吗?》

    简单区分对称加密、非对称加密对称加密就是使用相同的明文加密出来的密文都是一样的。非对称加密就是使用相同的明文加密出...

  • 非对称加密解密RSA的实现例子

    背景 最近有接触到加密相关的内容,本期以非对称加密为例子,做个简单的总结和记录。首先了解下非对称加密,简单来说非对...

  • 凯撒挪移码

    密码学中我所知道的加密算法分为对称加密和非对称加密,其中对称加密与非对称加密相比较为简单,我将从对称加密开始讲...

  • golang实现RSA加密解密

    非对称加密示意图: 在此可以看到,非对称加密是通过两个密钥(公钥-私钥)来实现对数据的加密和解密的。公钥用于加密,...

  • 第四篇:非对称加密及RSA加密算法

    目录一、非对称加密 1、什么是非对称加密? 2、对称加密的工作过程 3、非对称加密的优点 4、非对称加密的不足二、...

网友评论

      本文标题:nodejs非对称加密简单demo实现

      本文链接:https://www.haomeiwen.com/subject/plfsydtx.html