我正在研究一个从数据库读取数据的应用程序。数据库中已经有加密的条目。我把密钥作为字节数组,想从yaml文件中加载它。
有没有办法填充这样的数组
private static final byte[] iv = { 13, -11, -88, 20, -110, 113, -2, -8, -15, -99, -23, -10, -10, -74, 1, 11 }
直接来自yaml文件吗?
yaml文件:
iv: 13,-11,-88
由于我无法在需要使用键的地方自动装配类,因此无法使用@value注释(据我了解)。所以我一直想使用这样的util类:
public static byte[] getKeyFor(Class type) {
return context.getEnvironment().getProperty("iv");
}
答案 0 :(得分:2)
下面应该可以工作:
application.yml:
iv: 12,32,12,32
在需要值的类中,将其绑定如下:
@Value("${iv}") byte[] iv;
答案 1 :(得分:1)
您使用String
格式的字节数据得到了一些字符串。
String iv = someCall(); //"13, -11, -88, 20, -110, 113, -2, -8, -15, -99, -23"
String[] byteStrings = iv.split(",");
byte[] byteData = new byte[byteStrings.length];
for (int i = 0; i < byteData.length; i++){
byteData[i] = Byte.parseByte(byteStrings[i], 8);
}