简单加密算术库(SEAL)如何将密文保存到文件

时间:2018-09-19 15:20:15

标签: seal

我在C ++中使用SEAL库。我想将密文保存到文件中。我在想类似将其转换为字符串类型并保存的方法。我想要一个包含所有密文的文件,并在需要时将该文件上载到内存以再次使用它们。我还必须保存加密和解密密钥,以便以后可以解密结果。

有人使用过此加密库,并且知道如何将生成的密文保存到文件中吗?我只是在学习如何使用该库,而我是C ++的新手,所以我为此而苦苦挣扎。

谢谢!

1 个答案:

答案 0 :(得分:0)

这就是我的方式。

对于这两种操作,我都使用提供的API,如下所示:

void saveCiphertext(Ciphertext encrypted, string filename){
  ofstream ct;
  ct.open(filename, ios::binary);
  encrypted.save(ct);
};

要再次加载,您有两种方法:


/* 
  If you can't / don't want / don't need to verify the encryption parameters
*/
Ciphertext unsafe_loadCiphertext(string filename){

  ifstream ct;
  ct.open(filename, ios::binary);
  Ciphertext result;
  result.unsafe_load(context);

  return result;
};

// Verifying encryption parameters
Ciphertext loadCiphertext(string filename, EncryptionParameters parms){

  auto context = SEALContext::Create(parms);

  ifstream ct;
  ct.open(filename, ios::binary);
  Ciphertext result;
  result.load(context, ct);

  return result;
};