liamylian/x-rsa

跨编程语言 Rsa

0.9.0 2018-08-12 08:28 UTC

README

OpenSSL RSA 加密、解密和密钥生成。支持 Java、Php、GoLang,支持大数据。

安装

Php

确保已启用 openssl 扩展。只需将 php/src/XRsa.phpphp/src/helpers.php 复制到您的项目中。或者,您可以使用 composer 安装

composer require liamylian/x-rsa

GoLang

确保您的 golang 版本大于 1.10.3。只需将 golang/xrsa/xrsa.go 复制到您的项目中,或者使用以下命令

go get github.com/liamylian/x-rsa

Java

只需将 XRsa.java 复制到您的项目中

用法

Php

    $keys = XRsa::createKeys(2048);
    $rsa = new XRsa($keys['publicKey'], $keys['privateKey']);
    
    $data = "Hello, World";
    $encrypted = $rsa->publicEncrypt($data);
    $decrypted = $rsa->privateDecrypt($encrypted);
    $sign = $rsa->sign($data);
    $is_valid = $rsa->verify($data, $sign);

GoLang

    publicKey := bytes.NewBufferString("")
    privateKey := bytes.NewBufferString("")

    err := CreateKeys(publicKey, privateKey, 2048)
    if err != nil {
        return
    }
    xrsa, err := NewXRsa(publicKey.Bytes(), privateKey.Bytes())
    if err != nil {
        return
    }

    data := "Hello, World"
    encrypted, _ := xrsa.PublicEncrypt(data)
    decrypted, _ := xrsa.PrivateDecrypt(encrypted) 
    sign, err := xrsa.Sign(data)
    err = xrsa.Verify(data, sign)

Java

    Map<String, String> keys = XRsa.createKeys(2048);
    XRsa rsa = new XRsa(keys.get("publicKey"), keys.get("privateKey"));
    
    String data = "hello world";
    String encrypted = rsa.publicEncrypt(data);
    String decrypted = rsa.privateDecrypt(encrypted);
    String sign = rsa.sign(data);
    Boolean isValid = rsa.verify(data, sign);