RSA加解密

配置选项

密钥对

加密

解密

跨语言兼容指南

与PHP互操作

// PHP加密示例
$publicKey = '...'; // 从本工具获取的公钥
$plaintext = '需要加密的文本';
$ciphertext = '';

// 对应PKCS#1 OAEP填充
openssl_public_encrypt(
    $plaintext,
    $ciphertext,
    $publicKey,
    OPENSSL_PKCS1_OAEP_PADDING
);

// 对应PKCS#1 v1.5填充
// openssl_public_encrypt(
//     $plaintext,
//     $ciphertext,
//     $publicKey,
//     OPENSSL_PKCS1_PADDING
// );

$base64Cipher = base64_encode($ciphertext);
echo $base64Cipher;

与Golang互操作

// Golang加密示例
package main

import (
    "crypto/rand"
    "crypto/rsa"
    "crypto/sha256"
    "crypto/x509"
    "encoding/base64"
    "encoding/pem"
)

func encrypt(publicKeyPEM string, plaintext string) (string, error) {
    block, _ := pem.Decode([]byte(publicKeyPEM))
    pubKey, err := x509.ParsePKIXPublicKey(block.Bytes)
    if err != nil {
        return "", err
    }

    rsaPubKey := pubKey.(*rsa.PublicKey)
    hash := sha256.New()

    // 对应PKCS#1 OAEP填充
    ciphertext, err := rsa.EncryptOAEP(
        hash,
        rand.Reader,
        rsaPubKey,
        []byte(plaintext),
        nil
    )

    // 对应PKCS#1 v1.5填充
    // ciphertext, err := rsa.EncryptPKCS1v15(
    //     rand.Reader,
    //     rsaPubKey,
    //     []byte(plaintext)
    // )

    if err != nil {
        return "", err
    }

    return base64.StdEncoding.EncodeToString(ciphertext), nil
}
相关工具

在线Unix时间戳或年月日时间互转

JSON格式化-JSON的常规格式化显示。

对批量换行的时间戳进行转换,来方便我们对比各个时间戳的时间。

scel词库解析TXT,可以解析搜狗词库文件(.scel),提取其中文字内容,并将结果导出为文本文件。

生成随机字符串-生成我们需要的不同长度自定义字符串,可以自定义长度、大小字母、数字、特殊符合的设定。

将图片转换为Base64编码,可以让你很方便地在没有上传文件的条件下将图片插入其它的网页、编辑器中。

base64转换,将字符串加密成base64字符,或将base64字符转成可读字符串。

urlcode转换,将字符串转成urlcode字符,或将urlcode字符转成可读字符串。