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

📄 elgamaldecryptor.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.math.BigInteger;

public class ElGamalDecryptor implements Decryptor {
	private ElGamalPrivateKey key;

	public ElGamalDecryptor(ElGamalPrivateKey key) {
		this.key=key;
	}

	public byte[] decrypt(byte[] data) {
		int yLength=Util.byteArrayToInt(data,0);
		int encLength=Util.byteArrayToInt(data,4);
		byte[] yBytes=new byte[yLength];
		System.arraycopy(data,8,yBytes,0,yLength);
		byte[] encryptedTextBytes=new byte[encLength];
		System.arraycopy(data,8+yLength,encryptedTextBytes,0,encLength);
		BigInteger y=new BigInteger(yBytes);
		BigInteger encryptedText=new BigInteger(encryptedTextBytes);
		BigInteger exponent=key.getModulus().subtract(key.getPrivateKey()).subtract(BigInteger.ONE);
		BigInteger plainText=y.modPow(exponent,key.getModulus());
		plainText=plainText.multiply(encryptedText).remainder(key.getModulus());
		byte[] modBytes=plainText.toByteArray();
		byte[] bytes=new byte[modBytes.length-1];
		System.arraycopy(modBytes,1,bytes,0,bytes.length);
		return bytes;
	}
}

⌨️ 快捷键说明

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