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

📄 aeverifier.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   AEVerifier.java

package org.gudy.azureus2.core3.util;

import java.io.*;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.Signature;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.RSAPublicKeySpec;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

// Referenced classes of package org.gudy.azureus2.core3.util:
//			AEVerifierException

public class AEVerifier
{

	private static final String pub_exp = "10001";
	private static final String modulus = "9a68296f49bf47b2a83ae4ba3cdb5a840a2689e5b36a6f2bfc27b916fc4dc9437f9087c4f0b5ae2fc5127a901b3c048753aa63d29cd7f9da7c81d475380de68236bd919230b0074aa6f40f29a78ac4a14e84fb8946cbcb5a840d1c2f77d83c795c289e37135843b8da008e082654a83b8bd3341b9f2ff6064e20b6c7ba89a707a1f3e1d8b2e0035dae539b04e49775eba23e5cbe89e22290da6c84ec3f450d07";

	public AEVerifier()
	{
	}

	public static void verifyData(File file)
		throws AEVerifierException, Exception
	{
		KeyFactory key_factory = KeyFactory.getInstance("RSA");
		RSAPublicKeySpec public_key_spec = new RSAPublicKeySpec(new BigInteger("9a68296f49bf47b2a83ae4ba3cdb5a840a2689e5b36a6f2bfc27b916fc4dc9437f9087c4f0b5ae2fc5127a901b3c048753aa63d29cd7f9da7c81d475380de68236bd919230b0074aa6f40f29a78ac4a14e84fb8946cbcb5a840d1c2f77d83c795c289e37135843b8da008e082654a83b8bd3341b9f2ff6064e20b6c7ba89a707a1f3e1d8b2e0035dae539b04e49775eba23e5cbe89e22290da6c84ec3f450d07", 16), new BigInteger("10001", 16));
		RSAPublicKey public_key = (RSAPublicKey)key_factory.generatePublic(public_key_spec);
		verifyData(file, public_key);
	}

	protected static void verifyData(File file, RSAPublicKey key)
		throws AEVerifierException, Exception
	{
		ZipInputStream zis = null;
		zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(file)));
		byte signature[] = null;
		Signature sig = Signature.getInstance("MD5withRSA");
		sig.initVerify(key);
		do
		{
			ZipEntry entry = zis.getNextEntry();
			if (entry == null)
				break;
			if (!entry.isDirectory())
			{
				String name = entry.getName();
				ByteArrayOutputStream output = null;
				if (name.equalsIgnoreCase("azureus.sig"))
					output = new ByteArrayOutputStream();
				byte buffer[] = new byte[0x10000];
				do
				{
					int len = zis.read(buffer);
					if (len <= 0)
						break;
					if (output == null)
						sig.update(buffer, 0, len);
					else
						output.write(buffer, 0, len);
				} while (true);
				if (output != null)
					signature = output.toByteArray();
			}
		} while (true);
		if (signature == null)
			throw new AEVerifierException(1, "Signature missing from file");
		if (!sig.verify(signature))
			throw new AEVerifierException(2, "Signature doesn't match data");
		if (zis != null)
			zis.close();
		break MISSING_BLOCK_LABEL_220;
		Exception exception;
		exception;
		if (zis != null)
			zis.close();
		throw exception;
	}

	public static void verifyData(String data, byte signature[])
		throws AEVerifierException, Exception
	{
		KeyFactory key_factory = KeyFactory.getInstance("RSA");
		RSAPublicKeySpec public_key_spec = new RSAPublicKeySpec(new BigInteger("9a68296f49bf47b2a83ae4ba3cdb5a840a2689e5b36a6f2bfc27b916fc4dc9437f9087c4f0b5ae2fc5127a901b3c048753aa63d29cd7f9da7c81d475380de68236bd919230b0074aa6f40f29a78ac4a14e84fb8946cbcb5a840d1c2f77d83c795c289e37135843b8da008e082654a83b8bd3341b9f2ff6064e20b6c7ba89a707a1f3e1d8b2e0035dae539b04e49775eba23e5cbe89e22290da6c84ec3f450d07", 16), new BigInteger("10001", 16));
		RSAPublicKey public_key = (RSAPublicKey)key_factory.generatePublic(public_key_spec);
		Signature sig = Signature.getInstance("MD5withRSA");
		sig.initVerify(public_key);
		sig.update(data.getBytes("UTF-8"));
		if (!sig.verify(signature))
			throw new AEVerifierException(2, "Data verification failed, signature doesn't match data");
		else
			return;
	}
}

⌨️ 快捷键说明

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