This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new 95da9c7f modify hash function from md5 to SHA-256 (#292)
95da9c7f is described below
commit 95da9c7fef96ee5c68d8630064add468cea1de4b
Author: jintao zhu <[email protected]>
AuthorDate: Wed Nov 6 09:25:19 2024 +0800
modify hash function from md5 to SHA-256 (#292)
Co-authored-by: zhujt <[email protected]>
---
.../org/apache/tsfile/encrypt/EncryptUtils.java | 21 ++++++++++++---------
.../apache/tsfile/read/TsFileSequenceReader.java | 8 +++-----
.../java/org/apache/tsfile/write/TsFileWriter.java | 8 +++++---
3 files changed, 20 insertions(+), 17 deletions(-)
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/encrypt/EncryptUtils.java
b/java/tsfile/src/main/java/org/apache/tsfile/encrypt/EncryptUtils.java
index b9bcf601..a97a46d1 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/encrypt/EncryptUtils.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/encrypt/EncryptUtils.java
@@ -30,6 +30,7 @@ import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.security.MessageDigest;
+import java.util.Arrays;
public class EncryptUtils {
@@ -94,10 +95,10 @@ public class EncryptUtils {
public static String getNormalKeyStr() {
try {
- MessageDigest md = MessageDigest.getInstance("MD5");
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update("IoTDB is the best".getBytes());
md.update(TSFileDescriptor.getInstance().getConfig().getEncryptKey().getBytes());
- byte[] data_key = md.digest();
+ byte[] data_key = Arrays.copyOfRange(md.digest(), 0, 16);
data_key =
IEncryptor.getEncryptor(
TSFileDescriptor.getInstance().getConfig().getEncryptType(),
@@ -115,16 +116,17 @@ public class EncryptUtils {
return str;
} catch (Exception e) {
- throw new EncryptException("md5 function not found while using md5 to
generate data key");
+ throw new EncryptException(
+ "SHA-256 function not found while using SHA-256 to generate data
key");
}
}
public static String getNormalKeyStr(TSFileConfig conf) {
try {
- MessageDigest md = MessageDigest.getInstance("MD5");
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update("IoTDB is the best".getBytes());
md.update(conf.getEncryptKey().getBytes());
- byte[] data_key = md.digest();
+ byte[] data_key = Arrays.copyOfRange(md.digest(), 0, 16);
data_key =
IEncryptor.getEncryptor(conf.getEncryptType(),
conf.getEncryptKey().getBytes())
.encrypt(data_key);
@@ -140,7 +142,8 @@ public class EncryptUtils {
return str;
} catch (Exception e) {
- throw new EncryptException("md5 function not found while using md5 to
generate data key", e);
+ throw new EncryptException(
+ "SHA-256 function not found while using SHA-256 to generate data
key", e);
}
}
@@ -154,13 +157,13 @@ public class EncryptUtils {
if (conf.getEncryptFlag()) {
encryptType = conf.getEncryptType();
try {
- MessageDigest md = MessageDigest.getInstance("MD5");
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update("IoTDB is the best".getBytes());
md.update(conf.getEncryptKey().getBytes());
- dataEncryptKey = md.digest();
+ dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
} catch (Exception e) {
throw new EncryptException(
- "md5 function not found while using md5 to generate data key", e);
+ "SHA-256 function not found while using SHA-256 to generate data
key", e);
}
} else {
encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
index 817078a1..d55daf26 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
@@ -378,13 +378,11 @@ public class TsFileSequenceReader implements
AutoCloseable {
* @throws IOException if an I/O error occurs while reading the file metadata
*/
public EncryptParameter getEncryptParam() throws IOException {
- try {
+ if (fileMetadataSize != 0) {
readFileMetadata();
- } catch (Exception e) {
- logger.error("Something error happened while reading file metadata of
file {}", file, e);
- return EncryptUtils.encryptParam;
+ return tsFileMetaData.getEncryptParam();
}
- return tsFileMetaData.getEncryptParam();
+ return EncryptUtils.encryptParam;
}
/**
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
index 9bff4b86..063df34f 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/write/TsFileWriter.java
@@ -53,6 +53,7 @@ import java.io.File;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -190,15 +191,16 @@ public class TsFileWriter implements AutoCloseable {
encryptLevel = "2";
encryptType = config.getEncryptType();
try {
- MessageDigest md = MessageDigest.getInstance("MD5");
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update("IoTDB is the best".getBytes());
md.update(config.getEncryptKey().getBytes());
- dataEncryptKey = md.digest();
+ dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
encryptKey =
IEncryptor.getEncryptor(config.getEncryptType(),
config.getEncryptKey().getBytes())
.encrypt(dataEncryptKey);
} catch (Exception e) {
- throw new EncryptException("md5 function not found while using md5 to
generate data key");
+ throw new EncryptException(
+ "SHA-256 function not found while using SHA-256 to generate data
key");
}
} else {
encryptLevel = "0";