N'oubliez pas de mettre en œuvre l'autorisation de licence une fois

package com.example.demo; 


import com.alibaba.fastjson.JSON;
import com.google.common.collect.ImmutableMap;

import javax.crypto.Cipher;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.util.Map;

/ **
* @author yangxj
* @date 2020-04-10 14:17
* /
public class RSADemo {
/ **
* 生成 一 对 公 (私) 钥
* @throws Exception
* /
public static void genPairKey () lève Exception {
// Instantiate Key
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance ("RSA");
// Obtenir une paire de clés
KeyPair keyPair = keyPairGenerator.generateKeyPair ();
// Obtenir la clé publique
Key publicKey = keyPair.getPublic ();
// Obtenir privé Key
Key privateKey keyPair.getPrivate = ();

// publique fichier clé (privé) est écrit
un FileOutputStream publicFos nouveau new = un FileOutputStream ( "/ utilisateurs / EDZ / LICENSEDIR / public.key"),
un privateFos de FileOutputStream nouvelle nouvelle = un FileOutputStream ( « / utilisateurs / edz / licenseir / private.key ");

ObjectOutputStream outputStream = new ObjectOutputStream (publicFos);

ObjectOutputStream outputStream2 = new ObjectOutputStream (privateFos);

outputStream.writeObject (publicKey);

outputStream2.writeObject (privateKey);

outputStream2.close ();
outputStream.close ();
}

/ **
* 解析
* @param args
* @throws Exception
* /
public static void main (String [] args) lève Exception {
Cipher cipher = Cipher.getInstance ("RSA");

// 反 序列 化 获取 公 (私) 钥
FileInputStream fis1 = new FileInputStream ("/ Users / edz / licenseir / public.key");
FileInputStream fis2 = new FileInputStream ("/ Users / edz / licenseir / private.key");

ObjectInputStream objectStream1 = new ObjectInputStream (fis1);
ObjectInputStream objectStream2 = new ObjectInputStream (fis2);

Key publicKey = (Key) objectStream1.readObject ();
Key privateKey = (Key) objectStream2.readObject ();

objectStream1.close ();
objectStream2.close ();

// à chiffrer Content
Map authInfo = ImmutableMap.of ("Authorization", "Someone", "Authorization is valid until", "2019-12-01");

// Crypter avec la clé publique (privée)
cipher.init (Cipher.ENCRYPT_MODE, privateKey );
octet [] encodeResult = cipher.doFinal (JSON.toJSONBytes (authInfo));

// Déchiffrer avec une clé privée (publique)
cipher.init (Cipher.DECRYPT_MODE, publicKey);
octet [] bytes = cipher.doFinal (encodeResult) ;

System.out.println (nouvelle chaîne (octets));


}
}

Je suppose que tu aimes

Origine www.cnblogs.com/yangxijun/p/12675642.html
conseillé
Classement