700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ELGamal加密算法C语言实现 ElGamal实现加密算法

ELGamal加密算法C语言实现 ElGamal实现加密算法

时间:2018-10-27 00:14:06

相关推荐

ELGamal加密算法C语言实现 ElGamal实现加密算法

1.新建一个java项目,里面新建一个java类,加入要用到的jar包,整体的框架如图所示:

2.ElGamal.java里面的代码如下所示:

import java.security.AlgorithmParameterGenerator;

import java.security.AlgorithmParameters;

import java.security.KeyPair;

import java.security.KeyPairGenerator;

import java.security.PrivateKey;

import java.security.PublicKey;

import java.security.SecureRandom;

import java.security.Security;

import javax.crypto.spec.DHParameterSpec;

import org.apache.tomcat.util.codec.binary.Base64;

import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class ElGamal {

public static void jdkElGamal() {

try {

Security.addProvider(new BouncyCastleProvider());

// 1.初始化密钥

AlgorithmParameterGenerator algorithmParameterGenerator = AlgorithmParameterGenerator.getInstance("ElGamal");

algorithmParameterGenerator.init(256);

AlgorithmParameters algorithmParameters = algorithmParameterGenerator.generateParameters();

DHParameterSpec dhParameterSpec = algorithmParameters.getParameterSpec(DHParameterSpec.class);

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("ElGamal");

keyPairGenerator.initialize(dhParameterSpec, new SecureRandom());

KeyPair keyPair = keyPairGenerator.generateKeyPair();

PublicKey elGamalPublicKey = keyPair.getPublic();

PrivateKey elGamalPrivateKey = keyPair.getPrivate();

System.out.println("Public Key:" + Base64.encodeBase64String(elGamalPublicKey.getEncoded()));

System.out.println("Private Key:" + Base64.encodeBase64String(elGamalPrivateKey.getEncoded()));

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

jdkElGamal();

}

}

3.运行之后可以看到加密和解密的密钥:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。