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 37dcffbc add getter for encryptParam (#447)
37dcffbc is described below
commit 37dcffbc8d955f4de5add61c82f995541fd48a78
Author: jintao zhu <[email protected]>
AuthorDate: Tue Mar 25 10:00:58 2025 +0800
add getter for encryptParam (#447)
* add getter for encryptParam
* reduce duplicate codes
---
.../apache/tsfile/common/conf/TSFileConfig.java | 2 -
.../org/apache/tsfile/encrypt/EncryptUtils.java | 120 ++++++++++-----------
.../apache/tsfile/read/TsFileSequenceReader.java | 2 +-
.../apache/tsfile/read/UnClosedTsFileReader.java | 2 +-
.../java/org/apache/tsfile/read/common/Chunk.java | 4 +-
.../tsfile/read/reader/page/LazyLoadPageData.java | 2 +-
.../java/org/apache/tsfile/write/TsFileWriter.java | 20 ++--
.../write/chunk/AlignedChunkGroupWriterImpl.java | 2 +-
.../tsfile/write/chunk/AlignedChunkWriterImpl.java | 6 +-
.../apache/tsfile/write/chunk/ChunkWriterImpl.java | 2 +-
.../chunk/NonAlignedChunkGroupWriterImpl.java | 2 +-
.../apache/tsfile/write/chunk/TimeChunkWriter.java | 2 +-
.../tsfile/write/chunk/ValueChunkWriter.java | 2 +-
.../org/apache/tsfile/write/page/PageWriter.java | 4 +-
.../apache/tsfile/write/page/TimePageWriter.java | 2 +-
.../apache/tsfile/write/page/ValuePageWriter.java | 2 +-
.../write/v4/AbstractTableModelTsFileWriter.java | 21 ++--
.../apache/tsfile/write/writer/TsFileIOWriter.java | 6 +-
18 files changed, 101 insertions(+), 102 deletions(-)
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/common/conf/TSFileConfig.java
b/java/tsfile/src/main/java/org/apache/tsfile/common/conf/TSFileConfig.java
index c09ac8d3..16318745 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/common/conf/TSFileConfig.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/common/conf/TSFileConfig.java
@@ -269,8 +269,6 @@ public class TSFileConfig implements Serializable {
public void setEncryptKeyFromPath(String encryptKeyPath) {
this.encryptKey = EncryptUtils.getEncryptKeyFromPath(encryptKeyPath);
- EncryptUtils.encryptParam = EncryptUtils.getEncryptParameter();
- EncryptUtils.normalKeyStr = EncryptUtils.getNormalKeyStr();
}
public int getGroupSizeInByte() {
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 6b9fc4ca..7bd28718 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.security.NoSuchAlgorithmException;
import java.util.Arrays;
public class EncryptUtils {
@@ -40,9 +41,20 @@ public class EncryptUtils {
private static final String encryptClassPrefix =
"org.apache.tsfile.encrypt.";
- public static String normalKeyStr = getNormalKeyStr();
+ private static volatile String normalKeyStr;
- public static EncryptParameter encryptParam = getEncryptParameter();
+ private static volatile EncryptParameter encryptParam;
+
+ public static String getNormalKeyStr() {
+ if (normalKeyStr == null) {
+ synchronized (EncryptUtils.class) {
+ if (normalKeyStr == null) {
+ normalKeyStr =
getNormalKeyStr(TSFileDescriptor.getInstance().getConfig());
+ }
+ }
+ }
+ return normalKeyStr;
+ }
public static String getEncryptClass(String encryptType) {
String classNameRegex = "^(\\p{Alpha}\\w*)(\\.\\p{Alpha}\\w+)+$";
@@ -76,7 +88,11 @@ public class EncryptUtils {
sb.append("\n").append(line);
}
}
- return sb.toString();
+ String str = sb.toString();
+ if (str.isEmpty()) {
+ return defaultKey;
+ }
+ return str;
} catch (IOException e) {
throw new EncryptException("Read main encrypt key error", e);
}
@@ -106,62 +122,40 @@ public class EncryptUtils {
return sb.toString();
}
- public static String getNormalKeyStr() {
+ public static String getNormalKeyStr(TSFileConfig conf) {
+ final MessageDigest md;
try {
- MessageDigest md = MessageDigest.getInstance("SHA-256");
- md.update("IoTDB is the best".getBytes());
-
md.update(TSFileDescriptor.getInstance().getConfig().getEncryptKey().getBytes());
- byte[] data_key = Arrays.copyOfRange(md.digest(), 0, 16);
- data_key =
- IEncryptor.getEncryptor(
- TSFileDescriptor.getInstance().getConfig().getEncryptType(),
-
TSFileDescriptor.getInstance().getConfig().getEncryptKey().getBytes())
- .encrypt(data_key);
-
- StringBuilder valueStr = new StringBuilder();
-
- for (byte b : data_key) {
- valueStr.append(b).append(",");
- }
-
- valueStr.deleteCharAt(valueStr.length() - 1);
- String str = valueStr.toString();
-
- return str;
- } catch (Exception e) {
+ md = MessageDigest.getInstance("SHA-256");
+ } catch (NoSuchAlgorithmException e) {
throw new EncryptException(
- "SHA-256 function not found while using SHA-256 to generate data
key", e);
+ "SHA-256 algorithm not found while using SHA-256 to generate data
key", e);
}
- }
-
- public static String getNormalKeyStr(TSFileConfig conf) {
- try {
- MessageDigest md = MessageDigest.getInstance("SHA-256");
- md.update("IoTDB is the best".getBytes());
- md.update(conf.getEncryptKey().getBytes());
- byte[] data_key = Arrays.copyOfRange(md.digest(), 0, 16);
- data_key =
- IEncryptor.getEncryptor(conf.getEncryptType(),
conf.getEncryptKey().getBytes())
- .encrypt(data_key);
+ md.update("IoTDB is the best".getBytes());
+ md.update(conf.getEncryptKey().getBytes());
+ byte[] data_key = Arrays.copyOfRange(md.digest(), 0, 16);
+ data_key =
+ IEncryptor.getEncryptor(conf.getEncryptType(),
conf.getEncryptKey().getBytes())
+ .encrypt(data_key);
- StringBuilder valueStr = new StringBuilder();
+ StringBuilder valueStr = new StringBuilder();
- for (byte b : data_key) {
- valueStr.append(b).append(",");
- }
-
- valueStr.deleteCharAt(valueStr.length() - 1);
- String str = valueStr.toString();
-
- return str;
- } catch (Exception e) {
- throw new EncryptException(
- "SHA-256 function not found while using SHA-256 to generate data
key", e);
+ for (byte b : data_key) {
+ valueStr.append(b).append(",");
}
+
+ valueStr.deleteCharAt(valueStr.length() - 1);
+ return valueStr.toString();
}
public static EncryptParameter getEncryptParameter() {
- return getEncryptParameter(TSFileDescriptor.getInstance().getConfig());
+ if (encryptParam == null) {
+ synchronized (EncryptUtils.class) {
+ if (encryptParam == null) {
+ encryptParam =
getEncryptParameter(TSFileDescriptor.getInstance().getConfig());
+ }
+ }
+ }
+ return encryptParam;
}
public static EncryptParameter getEncryptParameter(TSFileConfig conf) {
@@ -169,15 +163,16 @@ public class EncryptUtils {
byte[] dataEncryptKey;
if (conf.getEncryptFlag()) {
encryptType = conf.getEncryptType();
+ final MessageDigest md;
try {
- MessageDigest md = MessageDigest.getInstance("SHA-256");
- md.update("IoTDB is the best".getBytes());
- md.update(conf.getEncryptKey().getBytes());
- dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
- } catch (Exception e) {
+ md = MessageDigest.getInstance("SHA-256");
+ } catch (NoSuchAlgorithmException e) {
throw new EncryptException(
- "SHA-256 function not found while using SHA-256 to generate data
key", e);
+ "SHA-256 algorithm not found while using SHA-256 to generate data
key", e);
}
+ md.update("IoTDB is the best".getBytes());
+ md.update(conf.getEncryptKey().getBytes());
+ dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
} else {
encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";
dataEncryptKey = null;
@@ -214,15 +209,16 @@ public class EncryptUtils {
byte[] dataEncryptKey;
if (conf.getEncryptFlag()) {
encryptType = conf.getEncryptType();
+ final MessageDigest md;
try {
- MessageDigest md = MessageDigest.getInstance("SHA-256");
- md.update("IoTDB is the best".getBytes());
- md.update(conf.getEncryptKey().getBytes());
- dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
- } catch (Exception e) {
+ md = MessageDigest.getInstance("SHA-256");
+ } catch (NoSuchAlgorithmException e) {
throw new EncryptException(
- "SHA-256 function not found while using SHA-256 to generate data
key", e);
+ "SHA-256 algorithm not found while using SHA-256 to generate data
key", e);
}
+ md.update("IoTDB is the best".getBytes());
+ md.update(conf.getEncryptKey().getBytes());
+ dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
} else {
encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";
dataEncryptKey = null;
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 afd4e9c3..dc07bfc2 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
@@ -479,7 +479,7 @@ public class TsFileSequenceReader implements AutoCloseable {
readFileMetadata(ioSizeRecorder);
return tsFileMetaData.getEncryptParam();
}
- return EncryptUtils.encryptParam;
+ return EncryptUtils.getEncryptParameter();
}
/**
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/UnClosedTsFileReader.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/UnClosedTsFileReader.java
index 53be3fec..f21b9713 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/read/UnClosedTsFileReader.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/read/UnClosedTsFileReader.java
@@ -35,7 +35,7 @@ public class UnClosedTsFileReader extends
TsFileSequenceReader {
// ioSizeRecorder can be null
public UnClosedTsFileReader(String file, LongConsumer ioSizeRecorder) throws
IOException {
super(file, false, ioSizeRecorder);
- encryptParam = EncryptUtils.encryptParam;
+ encryptParam = EncryptUtils.getEncryptParameter();
}
// ioSizeRecorder can be null
diff --git a/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
index 50d54df6..dd779197 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/read/common/Chunk.java
@@ -74,7 +74,7 @@ public class Chunk {
this.chunkData = buffer;
this.deleteIntervalList = deleteIntervalList;
this.chunkStatistic = chunkStatistic;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
public Chunk(
@@ -93,7 +93,7 @@ public class Chunk {
public Chunk(ChunkHeader header, ByteBuffer buffer) {
this.chunkHeader = header;
this.chunkData = buffer;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
public Chunk(ChunkHeader header, ByteBuffer buffer, EncryptParameter
encryptParam) {
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/LazyLoadPageData.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/LazyLoadPageData.java
index 6021e40f..4a2e734c 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/LazyLoadPageData.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/page/LazyLoadPageData.java
@@ -42,7 +42,7 @@ public class LazyLoadPageData {
this.chunkData = data;
this.pageDataOffset = offset;
this.unCompressor = unCompressor;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
public LazyLoadPageData(
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 a4f43fa4..5c71279f 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
@@ -54,6 +54,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -193,18 +194,19 @@ public class TsFileWriter implements AutoCloseable {
if (config.getEncryptFlag()) {
encryptLevel = "2";
encryptType = config.getEncryptType();
+ final MessageDigest md;
try {
- MessageDigest md = MessageDigest.getInstance("SHA-256");
- md.update("IoTDB is the best".getBytes());
- md.update(config.getEncryptKey().getBytes());
- dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
- encryptKey =
- IEncryptor.getEncryptor(config.getEncryptType(),
config.getEncryptKey().getBytes())
- .encrypt(dataEncryptKey);
- } catch (Exception e) {
+ md = MessageDigest.getInstance("SHA-256");
+ } catch (NoSuchAlgorithmException e) {
throw new EncryptException(
- "SHA-256 function not found while using SHA-256 to generate data
key", e);
+ "SHA-256 algorithm not found while using SHA-256 to generate data
key", e);
}
+ md.update("IoTDB is the best".getBytes());
+ md.update(config.getEncryptKey().getBytes());
+ dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
+ encryptKey =
+ IEncryptor.getEncryptor(config.getEncryptType(),
config.getEncryptKey().getBytes())
+ .encrypt(dataEncryptKey);
} else {
encryptLevel = "0";
encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
index c051a702..feab6746 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkGroupWriterImpl.java
@@ -74,7 +74,7 @@ public class AlignedChunkGroupWriterImpl implements
IChunkGroupWriter {
TSEncoding.valueOf(TSFileDescriptor.getInstance().getConfig().getTimeEncoder());
TSDataType timeType =
TSFileDescriptor.getInstance().getConfig().getTimeSeriesDataType();
Encoder encoder =
TSEncodingBuilder.getEncodingBuilder(tsEncoding).getEncoder(timeType);
- this.encryprParam = EncryptUtils.encryptParam;
+ this.encryprParam = EncryptUtils.getEncryptParameter();
timeChunkWriter =
new TimeChunkWriter(
timeMeasurementId, compressionType, tsEncoding, encoder,
this.encryprParam);
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkWriterImpl.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkWriterImpl.java
index a82ca231..49ec4d7f 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkWriterImpl.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/AlignedChunkWriterImpl.java
@@ -57,7 +57,7 @@ public class AlignedChunkWriterImpl implements IChunkWriter {
// TestOnly
public AlignedChunkWriterImpl(VectorMeasurementSchema schema) {
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
timeChunkWriter =
new TimeChunkWriter(
schema.getMeasurementName(),
@@ -127,7 +127,7 @@ public class AlignedChunkWriterImpl implements IChunkWriter
{
*/
public AlignedChunkWriterImpl(
IMeasurementSchema timeSchema, List<IMeasurementSchema> valueSchemaList)
{
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
timeChunkWriter =
new TimeChunkWriter(
timeSchema.getMeasurementName(),
@@ -189,7 +189,7 @@ public class AlignedChunkWriterImpl implements IChunkWriter
{
* @param schemaList value schema list
*/
public AlignedChunkWriterImpl(List<IMeasurementSchema> schemaList) {
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
TSEncoding timeEncoding =
TSEncoding.valueOf(TSFileDescriptor.getInstance().getConfig().getTimeEncoder());
TSDataType timeType =
TSFileDescriptor.getInstance().getConfig().getTimeSeriesDataType();
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ChunkWriterImpl.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ChunkWriterImpl.java
index e96bee49..25e0410b 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ChunkWriterImpl.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ChunkWriterImpl.java
@@ -103,7 +103,7 @@ public class ChunkWriterImpl implements IChunkWriter {
public ChunkWriterImpl(IMeasurementSchema schema) {
this.measurementSchema = schema;
this.compressor = ICompressor.getCompressor(schema.getCompressor());
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
this.pageBuffer = new PublicBAOS();
this.pageSizeThreshold =
TSFileDescriptor.getInstance().getConfig().getPageSizeInByte();
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
index cc20b252..261c14fa 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/NonAlignedChunkGroupWriterImpl.java
@@ -60,7 +60,7 @@ public class NonAlignedChunkGroupWriterImpl implements
IChunkGroupWriter {
public NonAlignedChunkGroupWriterImpl(IDeviceID deviceId) {
this.deviceId = deviceId;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
public NonAlignedChunkGroupWriterImpl(IDeviceID deviceId, EncryptParameter
encryptParam) {
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/TimeChunkWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/TimeChunkWriter.java
index 7960a81a..bbf2d0b8 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/TimeChunkWriter.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/TimeChunkWriter.java
@@ -94,7 +94,7 @@ public class TimeChunkWriter {
this.measurementId = measurementId;
this.encodingType = encodingType;
this.compressionType = compressionType;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
this.pageBuffer = new PublicBAOS();
this.pageSizeThreshold =
TSFileDescriptor.getInstance().getConfig().getPageSizeInByte();
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ValueChunkWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ValueChunkWriter.java
index f97d3370..d011e125 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ValueChunkWriter.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/chunk/ValueChunkWriter.java
@@ -97,7 +97,7 @@ public class ValueChunkWriter {
this.encodingType = encodingType;
this.dataType = dataType;
this.compressionType = compressionType;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
this.pageBuffer = new PublicBAOS();
this.pageSizeThreshold =
TSFileDescriptor.getInstance().getConfig().getPageSizeInByte();
this.maxNumberOfPointsInPage =
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/page/PageWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/page/PageWriter.java
index 87740430..d479ad8d 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/write/page/PageWriter.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/write/page/PageWriter.java
@@ -74,7 +74,7 @@ public class PageWriter {
this(measurementSchema.getTimeEncoder(),
measurementSchema.getValueEncoder());
this.statistics = Statistics.getStatsByType(measurementSchema.getType());
this.compressor =
ICompressor.getCompressor(measurementSchema.getCompressor());
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
private PageWriter(Encoder timeEncoder, Encoder valueEncoder) {
@@ -82,7 +82,7 @@ public class PageWriter {
this.valueOut = new PublicBAOS();
this.timeEncoder = timeEncoder;
this.valueEncoder = valueEncoder;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
public PageWriter(EncryptParameter encryptParam) {
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/page/TimePageWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/page/TimePageWriter.java
index b83743ef..e09e66cd 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/write/page/TimePageWriter.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/write/page/TimePageWriter.java
@@ -64,7 +64,7 @@ public class TimePageWriter {
this.timeEncoder = timeEncoder;
this.statistics = new TimeStatistics();
this.compressor = compressor;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
public TimePageWriter(
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/page/ValuePageWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/page/ValuePageWriter.java
index 6199171a..525c3199 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/page/ValuePageWriter.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/page/ValuePageWriter.java
@@ -77,7 +77,7 @@ public class ValuePageWriter {
this.valueEncoder = valueEncoder;
this.statistics = Statistics.getStatsByType(dataType);
this.compressor = compressor;
- this.encryptParam = EncryptUtils.encryptParam;
+ this.encryptParam = EncryptUtils.getEncryptParameter();
}
public ValuePageWriter(
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java
index c2278753..dd03471c 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/v4/AbstractTableModelTsFileWriter.java
@@ -39,6 +39,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -105,18 +106,20 @@ abstract class AbstractTableModelTsFileWriter implements
ITsFileWriter {
if (config.getEncryptFlag()) {
encryptLevel = "2";
encryptType = config.getEncryptType();
+
+ final MessageDigest md;
try {
- MessageDigest md = MessageDigest.getInstance("SHA-256");
- md.update("IoTDB is the best".getBytes());
- md.update(config.getEncryptKey().getBytes());
- dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
- encryptKey =
- IEncryptor.getEncryptor(config.getEncryptType(),
config.getEncryptKey().getBytes())
- .encrypt(dataEncryptKey);
- } catch (Exception e) {
+ md = MessageDigest.getInstance("SHA-256");
+ } catch (NoSuchAlgorithmException e) {
throw new EncryptException(
- "SHA-256 function not found while using SHA-256 to generate data
key");
+ "SHA-256 algorithm not found while using SHA-256 to generate data
key", e);
}
+ md.update("IoTDB is the best".getBytes());
+ md.update(config.getEncryptKey().getBytes());
+ dataEncryptKey = Arrays.copyOfRange(md.digest(), 0, 16);
+ encryptKey =
+ IEncryptor.getEncryptor(config.getEncryptType(),
config.getEncryptKey().getBytes())
+ .encrypt(dataEncryptKey);
} else {
encryptLevel = "0";
encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
index 85bea9c9..e5d465f8 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
@@ -138,7 +138,7 @@ public class TsFileIOWriter implements AutoCloseable {
if (TS_FILE_CONFIG.getEncryptFlag()) {
this.encryptLevel = "2";
this.encryptType = TS_FILE_CONFIG.getEncryptType();
- this.encryptKey = EncryptUtils.normalKeyStr;
+ this.encryptKey = EncryptUtils.getNormalKeyStr();
} else {
this.encryptLevel = "0";
this.encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";
@@ -166,7 +166,7 @@ public class TsFileIOWriter implements AutoCloseable {
if (conf.getEncryptFlag()) {
this.encryptLevel = "2";
this.encryptType = conf.getEncryptType();
- this.encryptKey = EncryptUtils.normalKeyStr;
+ this.encryptKey = EncryptUtils.getNormalKeyStr();
} else {
this.encryptLevel = "0";
this.encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";
@@ -185,7 +185,7 @@ public class TsFileIOWriter implements AutoCloseable {
if (TS_FILE_CONFIG.getEncryptFlag()) {
this.encryptLevel = "2";
this.encryptType = TS_FILE_CONFIG.getEncryptType();
- this.encryptKey = EncryptUtils.normalKeyStr;
+ this.encryptKey = EncryptUtils.getNormalKeyStr();
} else {
this.encryptLevel = "0";
this.encryptType = "org.apache.tsfile.encrypt.UNENCRYPTED";