我正在尝试在 C 中打印 SHA256 哈希值,但是当我使用下面所示的 for 循环时,打印哈希值的唯一方法是将换行符添加到 printf 中。理想情况下,我想将其全部打印在一行上。
void enclave_main()
{
char string[] = "Hello World";
int x;
unsigned char digest[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, string, strlen(string));
SHA256_Final(digest, &sha256);
for(x = 0; x < SHA256_DIGEST_LENGTH; x++)
printf("%02x\n", digest[x]);
sgx_exit(NULL);
}
Run Code Online (Sandbox Code Playgroud) 现在我在域对象之一中有以下属性:
@Column(name = "color")
public Color getColor() {
return color;
}
Run Code Online (Sandbox Code Playgroud)
该字段以文本形式存储在 Postgres 数据库中。当我尝试存储这些时,出现以下异常:
org.hibernate.type.SerializationException: could not deserialize
at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:243)
at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:287)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:138)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:113)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:27)
at org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:53)
at ...
Caused by: java.io.StreamCorruptedException: invalid stream header: 5C786163
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:309)
at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:299)
at ...
Run Code Online (Sandbox Code Playgroud)
我想知道 Hibernate 是否提供任何这种类型的映射?我的另一种可能性是使用 RGB 值将颜色转换为字符串。但是由于我的域对象也是我的 Hibernate 对象,所以我真的不知道如何在不将属性类型更改为 String 的情况下做到这一点。