# 添加自定义加解密算法
该章节旨在指导用户通过接口实现,增加自定义加密、解密算法
# 自定义加解密实现流程
- 实现com.primeton.filetransfer.p2pfile.coder.IFTCorder接口加解密方法。
- 代码打包放入Agent根目录/bftagent/lib下。
- 修改Agent根目录/bftagent/config/bft-agent-corder-conf.xml。
- 数据字典中配置自定义加解密值。
- 传输策略使用加解密。
# 实现加密、解密方法
# 准备工作
- 打开ecplise,新建一个项目,mycorder。
- 导入BFT Agent根目录下bftagent/lib/com.primeton.filetransfer.p2pfile-7.6.0.jar到项目下
# 实现IFTCorder接口加密/解密算法
创建一个类,继承com.primeton.filetransfer.p2pfile.coder.IFTCorder接口。
IFTCorder接口中包含加密解密方法。每个方法中包含两个参数: byte[] data:加密或解密前的数据。 String key:密钥。
方法的返回值则是加密或解密后的数据。示例如下:
import com.primeton.filetransfer.p2pfile.coder.IFTCorder; public class SimpleCorder implements IFTCorder{ public byte[] decrypt(byte[] data, String key) { //解密方法 将拼接在后面的key去除 int keylen = key.getBytes().length; byte[] result = new byte[data.length - keylen]; for(int i=0;i<result.length;i++) { result[i] = data[i]; } return result; } public byte[] encrpyt(byte[] data, String key) { //加密方法 将key拼接在数据后面 byte[] keybyte = key.getBytes(); byte[] result = new byte[keybyte.length+data.length]; for(int i=0;i<data.length;i++) { result[i] = data[i]; } for(int i=0;i<keybyte.length;i++) { result[data.length+i] = keybyte[i]; } return result; } }
将写好的代码进行打包。
将打好的jar包放置在BFT Agent根目录/bftagent/lib下
提示: 如果项目中含有其他的依赖,也一并放入Agent根目录/bftagent/lib下。
完成以上步骤后需要重启Agent。
# 控制管理中心新加密算法定义
加密配置文件添加新算法信息
打开Agent根目录/bftagent/config/bft-agent-corder-conf.xml文件,每对
代表一个加密方式。所以需要添加自定义的 。 <corder name="mycoder" class="com.primeton.mycorder.SimpleCorder"> <enkey>KueqqWWEop</enkey> <dekey>KueqqWWEop</dekey> <sendpolicy>0</sendpolicy> <receivepolicy>0</receivepolicy> </corder>
名称 说明 name 自定义加密界面的名称,不区别大小写 class 实现FTCorder接口类的全限定命名 enkey 调用加密方法时传入的key(密钥)值 dekey 调用解密方法时传入的key(密钥)值 enbuf 加密前缓存大小,例如2048等用户无需填写 debuf 加密后缓存大小,用户无需填写 sendpolicy 发送时加密策略:0边发送边加密,1先加密后发送 receivepolicy 接收是解密策略:0边接收边解密,1先接收后解密 说明:bft-agent-corder-conf.xml 中 enbuf、debuf,默认不填写,将在加入自定义算法,代理节 点首次运行后,由程序执行计算得出,并写入bft-agent-corder-conf.xml 文件。
字典值配置
在BFT Console中点击菜单【系统管理】→【字典码表】,如下图所示:
搜索【类型代码】“BFT_ENCRYPT”
点击【新增字典项】添加加密算法,如下图所示:
名称 | 说明 |
---|---|
字典类型 | 固定值,代表加密类型,不可填写 |
编号 | 与配置文件%BFT_AGENT%\bftagent\config\bft-agent-corder-conf.xml的name保持一致 |
名称 | 自定义加密的标识,可以填写通俗名称 |
排序 | 该加密类型的显示位置 |
# 策略中使用新增加密算法
在BFT Console中点击菜单【策略管理】->【传输策略】,右侧区域显示 “传输策略” 界面
点击 【新增】>【一对一传输】新增传输策略,在加密算法栏选择新增的加密算法