public static BigInteger primeFactorOf(BigInteger n) {
BigInteger p = n.sqrt();
BigInteger small = new BigInteger("0");
BigInteger two = new BigInteger("2");
while(n.mod(p).compareTo(small)!=0){
p=p.subtract(two);
}
System.out.println(p);
System.o
我正在做一些纠错,我需要在Java中除以mod 11下的两位数。
现在我知道了,通过使用模数计算器:
9/1 mod 11 = 9
2/10 mod 11 = 9
问题出在让Java计算这一点上。在Java中:
(9 / 1) % 11 = 9 - This is fine
(2 / 10) % 11 = 0 - This is not correct.
我知道Java在技术上不能执行模运算,我的一部分想法是我要么需要以某种方式计算逆数,要么使用数组来存储可能的输出值。
下面是我的RSA算法的实现。实际上,我选择的是私钥(d),而不是公钥(e),并且计算公共key.It很好,但是
我想知道这是否是一个安全的实现?代码中的任何部分是否也会导致模(n)的因式分解,从而破坏密钥?
当我做了一些工作时,我认为我计算(e和d)的方式可能会导致模(N)的因式分解,但我不确定。我读了一些关于RSA中易损指数类的研究工作,从中我得到了满足方程的公共指数:
eX - NY = (ap + bq)Z与q>a>0,b=ap/q
利用连续分数算法和椭圆曲线分解方法,我们可以证明这些指数产生RSA模的因式分解。
那么问题是,代码中的任何部分都会导致模(N)的因式分解,从而破
我正在编写一些Junit测试,其中(从java.security.KeyPairGenerator)生成了许多java.security.KeyPair类型的对象。
我添加了一些断言,以确认这些KeyPairs中包含的键具有预期的属性(预期的算法和预期的大小)。
例如,我添加了一个断言语句来确认算法是预期的算法,使用:
String expectedAlgorithm = "RSA";
String errorMsg = "The key is not of the expected algorithm";
assertEquals(errorMsg, expe
我正在使用我在桌面应用程序上生成的公钥加密java智能卡上的一些字节数据,但当我试图解密桌面上的数据时,我得到了BadPaddingException : Data must start with zero,我看到这可能是由于使用假私钥解密数据造成的。
首先,我在桌面应用程序上生成了一个公钥/私钥对,并使用以下代码将它们加载到智能卡上(在以BigInteger类型生成时,我将它们转换为十六进制,并从十六进制转换为字节数组):
keyGen(字符串ID )抛出异常{ //其中ID为用户KeyPairGenerator kpg =KeyPairGenerator.getInstance(“R
我编写了在两个数字之间获取GCD(最大公共分区)的代码。因为我应该在第19位输入数字,我想我需要使用BigInteger数学类。但是,在编译代码后,会出现以下错误。
线程“主”java.lang.ArithmeticException中的例外: BigInteger:在test.GCD(test.java:9)、test.main(test.java:22)的test.GCD(test.java:9)处模不正
这是我的密码。
import java.util.*;
import java.math.BigInteger;
public class test {
public stat
我试图在本机查询中使用like操作符,如下所示:
@Query(value = "SELECT max(id) FROM EMP where id like ___:country%", nativeQuery=true)
国家作为方法的输入参数。
获取以下错误:
java.lang.IllegalArgumentException:未知参数名称:国家
有人能帮我一下吗。
int value = 5381;
for (int i = 0; i < item.length(); i++) {
value = value * 33 + item.charAt(i);
}
value &= 0x7fffffff;
value %= size;
这是伯恩斯坦的哈希码。我得到了除了最后两行之外的所有东西。他们干些什么?它们还会在Java编译器中产生错误,因此它们显然不是有效的代码。除此之外,它们还能被表示出来吗?
我几乎不在乎他们做什么,只要他们工作就行了。
我正在用Java编写一个程序来演示Miller-Rabin概率测试。代码差不多完成了..。
import java.util.Random;
import java.util.Scanner;
/**
* Program to demonstrate Miller-Rabin primality testing
*
* @author Nick Gilbert
*/
public class MillerRabin
{
public static void main(String[] args)
{
//Setting up for algorith
我正在编写一个程序,它接受控制台的输入-一个zip文件的名称,一个压缩文件的名称,包含从第一个zip生成的加密文件和一个包含公钥的文件。每次流关闭时,我都会得到一个异常:
Exception in thread "main" java.util.zip.ZipException: invalid entry size (expected 11 but got 128 bytes)
at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:288)
at java.util.zip.ZipOutputStre
我有一个java卡小程序,它将生成一个RSA私钥对(每个512位)。它将发送公钥模数和指数(模数为64字节)。
在主机应用程序(java)中,我需要使用相同的指数和模数重新构建rsa公钥,但是当我试图使用下面的代码进行重构时,我会得到一个错误。
Java卡代码:
// this one to create the key pair
rsa_KeyPair = new KeyPair(KeyPair.ALG_RSA_CRT, KeyBuilder.LENGTH_RSA_512);
rsa_KeyPair.genKeyPair();
rsa_PublicKey = (RSAPublic
我试着用拉宾函数做一个PRG。我为实现该函数而编写的代码(用Java编写)是:
poublic static int rabinFunction(int m, int publicKey) {
return (int) Math.pow(m, 2) % publicKey;
}
一个简单的用法(使用维基百科链接中的数字)是:
int m = 20;
int pq = 7 * 11;
// output will be 15
int output = rabinFunction(20, 77);
我用这个单向函数来创建一个伪随机发生器。基本上,我运行Rabin函数并使用函数输出中最不重
我想分发加密的信息,只有我能加密,但每个人都可以解密。我正在使用下面的代码来执行任务。它能用,但我想知道它是否有安全问题?
我知道通常的用法是使用RSA公钥加密,私钥解密(但我的用例正好相反)。另外,我不想在这里使用java.security.Signature。
用例:我想通过电子邮件将配置文件从服务器发送到客户端,而收件人不能以明文读取配置。安装过程中拥有服务器公钥的应用程序将能够在将配置文件导入配置目录后解密。
public static final String ALGORITHM = "RSA/ECB/PKCS1Padding";
public Cipher cre