# 端到端加密

端到端加密确保只有通信的双方可以访问和读取消息内容，任何第三方，包括Alien的服务器，都无法解密这些信息。

* 非对称加密（RSA）： 使用RSA公钥/私钥对消息进行加密和解密。发送方使用接收方的公钥加密消息，接收方使用自己的私钥解密消息。
* 对称加密（AES）： 为了提高效率，消息内容使用AES对称加密，密钥通过RSA加密后传输。

// 示例：端到端加密消息

import { encrypt, decrypt, generateKeyPair } from 'crypto';

const { publicKey, privateKey } = generateKeyPair();

<br>

// 加密消息

function encryptMessage(message, recipientPublicKey) {

&#x20; const encryptedMessage = encrypt(recipientPublicKey, Buffer.from(message));

&#x20; return encryptedMessage.toString('base64');

}

<br>

// 解密消息

function decryptMessage(encryptedMessage, recipientPrivateKey) {

&#x20; const decryptedMessage = decrypt(recipientPrivateKey, Buffer.from(encryptedMessage, 'base64'));

&#x20; return decryptedMessage.toString();

}
