⌘CtrlK
Appearance
Appearance
该章节旨在指导用户通过接口实现,增加自定义加密、解密算法

创建一个类,继承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></corder>代表一个加密方式。所以需要添加自定义的<corder></corder>。
<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中点击菜单【策略管理】->【传输策略】,右侧区域显示 “传输策略” 界面
点击 【新增】>【一对一传输】新增传输策略,在加密算法栏选择新增的加密算法
