加解密

CatLib加解密组件使用AES-256AES-128加密,强烈建议您使用由CatLib加解密组件所提供的加密服务,而不要使用自己的加解密算法。

所有加密信息在底层都会进行HMac签名,以保证加密值不能被更改。

初始配置

在使用CatLib加解密组件之前您必须对组件进行配置,您可以通过初始配置来配置:

配置名 是否必须 配置描述(可以点击查看详细)
EncryptionProvider.Key 密钥(AES-128需要16位长度, AES-256需要32位长度)
EncryptionProvider.Cipher 加密类型(AES-128-CBCAES-256-CBC

使用加解密组件

加密一个值

您可以通过Encrypt方法来对值进行加密,所有的值一经加密则不能修改。

  1. var encrypter = App.Make<IEncrypter>();
  2. byte[] data;
  3. string encryptStr = encrypter.Encrypt(data);

解密被加密的内容

  1. var encrypter = App.Make<IEncrypter>();
  2. byte[] str = encrypter.Decrypt(encryptStr);

如果解密失败,例如:HMac验证失败,那么将会抛出一个EncryptionException异常。

交换密钥算法

  1. var manager = App.Make<IEncryptionManager>();
  2. var key = manager.ExchangeSecret((publicKey)=>{
  3. //todo: 将客户端的publicKey提交到服务器并换回服务器的serverPublicKey
  4. return serverPublicKey;
  5. });

扩展加密组件

您可以通过Extend方法对加密函数进行拓展。

  1. var manager = App.Make<IEncryptionManager>();
  2. manager.Extend(()=>{
  3. return new AesEncrypter();
  4. },"extend-encrypter");
  5. var encrypter = manager["extend-encrypter"];