mirror of https://github.com/apache/poi.git
Fix 1.6ism
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@951016 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
390c6f797a
commit
9c68267a68
|
@ -26,6 +26,7 @@ import javax.crypto.SecretKey;
|
||||||
import javax.crypto.spec.SecretKeySpec;
|
import javax.crypto.spec.SecretKeySpec;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.security.GeneralSecurityException;
|
import java.security.GeneralSecurityException;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
|
@ -48,8 +49,15 @@ public class Decryptor {
|
||||||
private void generatePasswordHash(String password) throws NoSuchAlgorithmException {
|
private void generatePasswordHash(String password) throws NoSuchAlgorithmException {
|
||||||
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
|
MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
|
||||||
|
|
||||||
|
byte[] passwordBytes;
|
||||||
|
try {
|
||||||
|
passwordBytes = password.getBytes("UTF-16LE");
|
||||||
|
} catch(UnsupportedEncodingException e) {
|
||||||
|
throw new RuntimeException("Your JVM is broken - UTF16 not found!");
|
||||||
|
}
|
||||||
|
|
||||||
sha1.update(info.getVerifier().getSalt());
|
sha1.update(info.getVerifier().getSalt());
|
||||||
byte[] hash = sha1.digest(password.getBytes(Charset.forName("UTF-16LE")));
|
byte[] hash = sha1.digest(passwordBytes);
|
||||||
|
|
||||||
byte[] iterator = new byte[4];
|
byte[] iterator = new byte[4];
|
||||||
for (int i = 0; i<50000; i++) {
|
for (int i = 0; i<50000; i++) {
|
||||||
|
|
Loading…
Reference in New Issue