gpt4 book ai didi

java - 在将类的变量存储在java中之前对其进行加密

转载 作者:行者123 更新时间:2023-12-01 17:22:52 25 4
gpt4 key购买 nike

我有课:

public class Data{

private int time;
private double avgVelocity;
private double avgAcceleration;
private double avgRhythm;
private int ups;
private int [] pressures;
private double [] velocities;
private double [] accelerations;

public Data(int tm, double vel, double acc, double rtm, int up,
int [] press, double [] vels, double [] accs){

time = tm;
avgVelocity = vel;
avgAcceleration = acc;
avgRhythm = rtm;
ups = up;
pressures = press;
velocities = vels;
accelerations = accs;
}

public double getTime(){
return time;
}

...

}

该类存储来自设备的数据。此数据应存储在 XML 文件中,以便稍后附加到另一个文件中。

我必须拥有的是即使附件可见,存储数据的 XML 也是不可读的。那么我应该加密变量的所有内容,然后将所有不可读的值存储在 xml 中吗?还是应该将所有值存储在 XML 中,然后加密整个文件?还是有更好的方法来实现这一目标?
(xml中数据的序列化不是问题,我已经这样做了,但是没有加密它)

我找不到任何适合我需要的解决方案。

编辑:根据对单个数据字段的 XML 进行加密的建议,什么应该是这样做的好方法?

最佳答案

我将加密整个 XML - 出错的机会更少,并且需要更少的填充(您加密的每个字符串/字节数组可能需要多达 16 个字节的填充,具体取决于您使用的 block 模式,所以如果您加密一次完整的 XML,那么您将被限制为 16 个字节的填充,而如果您将其加密为八个单独的 block ,那么您最多可能有 128 个字节的填充)。 Here is an example of using AES to encrypt a string to a byte array - 谷歌还有很多其他示例,请务必避免使用 ECB(电子密码本)模式的示例,因为这种模式不安全。您可能还想在加密之前压缩 XML(加密后不要压缩它,这会浪费时间)。这将为您留下一个字节数组,如果您需要一个字符串,请使用 Base64 encoder将字节数组转换为字符串。

正如 akostadinov 的回答中提出的那样,在加密数据时不应该重用初始化 vector - IV 需要是唯一的,但它不需要是 secret 的(您可以/应该将其与加密数据一起存储)。

关于java - 在将类的变量存储在java中之前对其进行加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com