• 加解密
    • 初始配置
    • 使用加解密组件
    • 交换密钥算法
    • 扩展加密组件

    加解密

    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"];