Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 间隔内带种子的PRNG_Java_Encryption_Aes_Sha1_Prng - Fatal编程技术网

Java 间隔内带种子的PRNG

Java 间隔内带种子的PRNG,java,encryption,aes,sha1,prng,Java,Encryption,Aes,Sha1,Prng,因此,我的问题如下:我试图在Java中实现一种方法,用用户选择的密码p(比如4z327yU10p)将消息从1个字符加密到1000个字符。然后,我想用伪随机数生成器PRNG来选择像素,将消息隐藏在图像中。我的种子是密码 以下是我的方法: sha3上的密码,以获得256b输出用作密钥 将AES与先前生成的密钥一起使用以获取加密消息 将输出用作我的PRNG的种子 对于1:这是否可能是一个短密码 对于2:AES可以用于小消息吗 对于3:如何在图像的间隔中使用随机数?0,…,480000因为我的算法给了我

因此,我的问题如下:我试图在Java中实现一种方法,用用户选择的密码p(比如4z327yU10p)将消息从1个字符加密到1000个字符。然后,我想用伪随机数生成器PRNG来选择像素,将消息隐藏在图像中。我的种子是密码

以下是我的方法:

sha3上的密码,以获得256b输出用作密钥 将AES与先前生成的密钥一起使用以获取加密消息 将输出用作我的PRNG的种子 对于1:这是否可能是一个短密码

对于2:AES可以用于小消息吗

对于3:如何在图像的间隔中使用随机数?0,…,480000因为我的算法给了我一个整数

代码如下:

public void initSeed(String password){ //pour initier la seed avec le password
    Message message = new Message();
    message.initMessageASCII(password);
    List <Integer> temp = message.getMsg();
    byte[] vect = new byte[temp.size()];
    for (int i=0; i< temp.size(); i++){
        vect[i] = temp.get(i).byteValue();
    }
    this.seed = vect;
}

public void init() { //pour initier le remplissage du vecteur randList
    SecureRandom random;
    try {
        random = SecureRandom.getInstance("SHA1PRNG"); //SHA1PRNG est un algorithme très efficace
        random.setSeed(seed);
        random.nextBytes(randList); //fonction pour créer les bytes aléatoires et les écrire dans "bytes"
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
}

我将分别回答以下问题:

是的,SHA-3可用于任意大小的消息。 是的,AES可用于任意大小的消息。 .
你可以把这看作是一种诅咒,我给了你想要的,而不是你需要的。例如,您不需要尚未标准化的SHA-3,但应该使用PBKDF。

那么,您的具体问题是什么?感谢您编辑并更正我的错误,但您删除了我的问题。1 sha3是否使用小钥匙工作且高效?2 AES是否在处理小消息?你知道一个伪随机数生成器,它接受一个种子并在预定的时间间隔内给我随机数吗?我猜你使用错误的密码算法是出于错误的原因。但是,好吧,我会把它们放回去,给你直接的答案。好的,非常感谢你,我想我明白了。实际上,我不需要特别使用SHA3或AES,这是我自己知道的。我只是寻找PBKDF,它似乎正是我所需要的,除了盐:它是完全随机的吗?因为我需要用相同的密码解密我的信息,所以我必须在别处再次找到Salt。它是随机的,但可以用密文存储。密文看起来也应该是随机的。