⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elgamalprivatekey.java

📁 Java version of ABC/HR comparator v0.5. by schnofler. Runs on Sun JRE 1.5 or later
💻 JAVA
字号:
package abchr.crypto;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Random;

public class ElGamalPrivateKey implements Serializable {
	private final BigInteger modulus;
	private final BigInteger generator;
	private final BigInteger publicKey;
	private final BigInteger privateKey;

	public BigInteger getGenerator(){return generator;}
	public BigInteger getModulus(){return modulus;}
	public BigInteger getPrivateKey(){return privateKey;}
	public BigInteger getPublicKey(){return publicKey;}

	private ElGamalPrivateKey(BigInteger modulus,BigInteger generator,BigInteger privateKey,BigInteger publicKey) {
		this.generator=generator;
		this.modulus=modulus;
		this.privateKey=privateKey;
		this.publicKey=publicKey;
	}

	public ElGamalPublicKey makePublicKey() {
		return new ElGamalPublicKey(modulus,generator,publicKey);
	}

	public static ElGamalPrivateKey makeKey() {
		Random random=new Random();
		BigInteger modulus=BigInteger.probablePrime(1024,random);
		BigInteger generator;
		do {
			generator=new BigInteger(modulus.bitLength(),random);
		} while(generator.compareTo(BigInteger.ONE)<=0 || generator.compareTo(modulus)>=0);
		BigInteger privateKey;
		do {
			privateKey=new BigInteger(modulus.bitLength(),random);
		} while(privateKey.compareTo(BigInteger.ONE)<=0 || privateKey.compareTo(modulus)>=0);
		BigInteger publicKey=generator.modPow(privateKey,modulus);
		return new ElGamalPrivateKey(modulus,generator,privateKey,publicKey);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -