服务端接入

Java版接入

SDK集成步骤

  • IDEA/Eclipse中导入JAR包

在IDEA/Eclipse的项目的根路径下创建lib目录。

拷贝服务器端安全组件的jar - netseckit-xxx.jarlib目录中。

  • 配置Maven

pom.xml中增加如下配置,以便在项目中加入netseckit-xxx.jar依赖。

<dependency>
<groupId>com.netease.is.nisc</groupId>
<artifactId>netseckit</artifactId>
<version>xxx</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/netseckit-xxx.jar</systemPath>
</dependency>

其中,xxx为对应的版本号。

  • 注意事项

Java SDK版本最低为1.6

SDK接口说明

  • 导入安全组件类 import导入
import com.netease.is.nisc.SecurityCipher;

其中,SecurityCipher的构造器为私有的,不能实例化。

  • 解密客户端字符串

调用方式:

public static StringDecResult decryptStringFromClient(String encString)

功能描述: 解密客户端SDK加密的字符串。

参数说明:

参数名称参数类型参数说明
encStringString待解密的字符串

返回值说明:

返回值名称返回值类型返回值说明
--StringDecResult解密后的对象

其中,StringDecResult说明:

名称类型说明
resultString解密后的结果
skbyte[]加密服务端数据的密钥
typeInteger加解密方式

其中,type枚举值说明:

类型描述
0Integer普通RSA+AES+HASH(默认)
1Integer国密SM2+SM3+SM4

异常说明:

异常类型说明可能原因
NullPointerException空指针异常encString为空/不是客户端加密的数据
RsaDecFailedExceptionRSA解密失败RSA私钥错误或不存在
AesDecFailedExceptionAES解密失败AES密钥错误
DataChangedExceptionhash值校验失败,数据被篡改数据被篡改
SM2DecFailedExceptionSM2解密失败SM2私钥错误或不存在
SM4DecFailedExceptionSM4解密失败SM4密钥错误
  • 加密服务器端字符串

调用方式:

public static String encryptStringToClient(String str, byte[] secretKey, int type)

功能描述:加密服务器端字符串。

参数说明:

参数名称参数类型参数说明
strString待加密的字符串
secretKeybyte[]加密密钥(解密时生成的sk)
typeInteger加解密方式(解密得到的type)

返回值说明:

返回值名称返回值类型返回值说明
--String加密的字符串

异常说明:

异常类型说明可能原因
RsaEncFailedException签名失败RSA私钥不存在
AesEncFailedExceptionAES加密失败AES密钥错误
SM4EncFailedExceptionSM4加密失败SM4密钥错误
  • 解密客户端Buffer

调用方式:

public static BufferDecResult decryptBufferFromClient(byte[] encBuffer)

功能描述:解密客户端SDK加密的Buffer。

参数说明:

参数名称参数类型参数说明
encBufferbyte[]待解密的buffer

返回值说明:

返回值名称返回值类型返回值说明
--BufferDecResult解密后的对象

其中,BufferDecResult说明:

名称类型说明
resultbyte[]解密后的buffer
skbyte[]加密服务端数据的密钥
typeInteger加解密方式(解密得到的type)

其中,type枚举值说明:

类型描述
0Integer普通RSA+AES+HASH(默认)
1Integer国密SM2+SM3+SM4

异常说明:

异常类型说明可能原因
NullPointerException解密数据为空encBuffer为空/不是客户端加密的数据
RsaDecFailedExceptionRSA解密失败RSA私钥错误或不存在
AesDecFailedExceptionAES解密失败AES密钥错误
DataChangedExceptionhash值校验失败,数据被篡改数据被篡改
SM2DecFailedExceptionSM2解密失败SM2私钥错误或不存在
SM4DecFailedExceptionSM4解密失败SM4密钥错误
  • 加密服务器端Buffer

调用方式:

public static byte[] encryptBufferToClient(byte[] buffer, byte[] secretKey, int type)

功能描述:加密服务器端Buffer。

参数说明:

参数名称参数类型参数说明
bufferbyte[]待加密的buffer
secretKeybyte[]加密密钥(解密时生成的sk)
typeInteger加解密方式(解密得到的type)

返回值说明:

返回值名称返回值类型返回值说明
--byte[]加密的buffer

异常说明:

异常类型说明可能原因
RsaEncFailedException签名失败RSA私钥不存在
AesEncFailedExceptionAES加密失败AES密钥错误
SM4EncFailedExceptionSM4加密失败SM4密钥错误

Python版接入

SDK集成步骤

  • 安装

解压压缩包,然后定位到setup.py文件所在目录。

执行python setup.py install安装。

  • 配置RSA私钥路径

导入Config类,通过set_private_key_path方式设置私钥路径。

from netseckit.config import Config
Config.set_private_key_path("/home/appops/private.pem")

注意1:要对private.pem有读的权限。

注意2:私钥已经存放在压缩包中,请注意安全。

  • 检查是否安装成功

shell>

python -c "from netseckit.NetSeckit import NetSeckit"

如果上述命令执行无任何错误,则安装成功。

  • 注意事项 本SDK支持python 2.7.x 、3.5.x、3.6.x版本。

如果您使用的为其它版本,请以测试为准。

SDK接口说明

  • 导入安全组件类
from netseckit.NetSeckit import NetSeckit
  • 解密客户端加密字符串

调用方式:

@staticmethod
def decrypt_string_from_client(enc_string)

参数说明:

参数名称参数类型参数说明
enc_stringunicode待解密的字符串

返回值说明:

返回值名称返回值类型返回值说明
--Dict解密后的数据

其中,Dict说明:

键名称类型说明
skbyte str生成的用于加密服务端数据的密钥
dataunicode解密后的原始数据

异常说明:

异常类型说明可能原因
ParseJSONDataException解析字符串错误客户端上传数据格式非法
RSAExceptionRSA解密失败服务器端RSA私钥和客户端公钥不匹配
AESExceptionAES解密失败提取AES密钥错误
HashNotEqualException客户端上传的HASH值和服务器计算的不一致数据被篡改
  • 加密服务器端字符串

调用方式

@staticmethod
def encrypt_string_to_client(raw_data, secret_key)

参数说明:

参数名称参数类型参数说明
raw_dataunicode待加密的字符串
secret_keybyte str加密密钥,解密时生成的sk

返回值说明:

返回值名称返回值类型返回值说明
--unicode加密后的字符串

异常:

异常类型说明可能原因
RSAExceptionRSA加密失败服务器端私钥不存在或格式错误
AESExceptionAES加密失败AES密钥错误或为空
  • 解密客户端Buffer

调用方式

@staticmethod
def decrypt_buffer_from_client (byte_str)

参数说明:

参数名称参数类型参数说明
byte_strbyte str待解密的buffer

返回值说明:

返回值名称返回值类型返回值说明
--Dict解密后数据

其中,Dict说明:

键名称类型说明
skbyte str生成的用于加密服务端数据的密钥
databyte str解密结果

异常说明:

异常类型说明可能原因
ParseJSONDataException解析byte str错误客户端上传数据格式非法
RSAExceptionRSA解密失败服务器端RSA私钥和客户端公钥不匹配
AESExceptionAES解密失败提取AES密钥错误
HashNotEqualException客户端上传的HASH值和服务器计算的不一致数据被篡改
  • 加密服务器端Buffer

调用方式

@staticmethod
def encrypt_buffer_to_client(byte_str, secret_key)

参数说明:

参数名称参数类型参数说明
byte_strbyte str要加密的数据,必须为utf-8编码的字节字符串
secret_keybyte str加密密钥,解密时生成的sk.

返回值说明:

返回值名称返回值类型返回值说明
--byte string加密结果

异常:

异常类型说明可能原因
RSAExceptionRSA加密失败服务器端私钥不存在或格式错误
AESExceptionAES加密失败AES密钥错误或为空
Online Chat Tel:95163223