如何在JAVA中为音频文件生成DSA签名密钥
我有一个音频文件(选择最容易使用的扩展名)。如何为DSA算法准备数据(此代码中的消息)如何在JAVA中为音频文件生成DSA签名密钥,java,dsa,Java,Dsa,我有一个音频文件(选择最容易使用的扩展名)。如何为DSA算法准备数据(此代码中的消息) String alg = "DSA"; KeyPairGenerator kg = KeyPairGenerator.getInstance(alg);//pobranie instancji algorytmu "DSA" rzuca wyjatek no such algorithm.. KeyPair keyPair = kg.genKeyPair(); //pobier
String alg = "DSA";
KeyPairGenerator kg = KeyPairGenerator.getInstance(alg);//pobranie instancji algorytmu "DSA" rzuca wyjatek no such algorithm..
KeyPair keyPair = kg.genKeyPair(); //pobieramy pare kluczy prywatny i publiczny
Signature sign = Signature.getInstance(alg); // generowany zostaje podpis implementujacy konkretny algorytm w tym wypadku DSA
SignedObject so = new SignedObject(message, keyPair.getPrivate(), sign); // podpisywanie otrzymywanej wiadomosci -> message, zwracany jest podpisany obiekt
BufferedWriter bw = new BufferedWriter(new FileWriter("wynikDSA.txt")); // tworze nowy bufferred writer ktory umozliwa zapis do pliku
verify(so,new Czytelnik(keyPair.getPublic()),sign,bw); // weryfikujemy czy klucz publiczny nowoutworzonego czytelnika pasuje do podpisu, przekazujemy bw aby moc zapisac dane do pliku
bw.write("klucz prywatny " + keyPair.getPrivate() //wpisywanie do pliku klucza prywatnego i publicznego
+ "\nklucz publiczny " + keyPair.getPublic());
ShortCuts.addShortcutsIntoTheFile(bw, message); //dopisanie skortow MD5 i SHA-1 do pliku
System.out.println(keyPair.getPrivate()); //wyspianie na konsoli klucza prywatnego na konsoli, ponizej publicznego
System.out.println(keyPair.getPublic());
bw.close();
DSA不适用于大型消息加密。如果我是正确的,1024位的DSA应该不能加密大于128字节的消息。所以您的音频文件不能大于该值。@gigadot它对“fasbufbsafa”*10000“fasbufbsafa”*10000是“fasbufbsafa”重复10000次还是“fasbufbsafa”的值乘以10000没有问题?