虎符不可逆加密接口协议及sdk
1、加密
描述
不可逆加密
请求方式
POST
请求地址
https://hufu.jdcloud-api.com/v1/encrypt
请求参数
名称 | 类型 | 是否必需 | 默认值 | 描述 |
---|---|---|---|---|
plaintext | String | False | 明文 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
result | Result | |
requestId | String | 请求ID |
Result
名称 | 类型 | 描述 |
---|---|---|
ciphertext | String | 密文 |
返回码
返回码 | 描述 |
---|---|
200 | OK |
400 | Invalid parameter |
401 | Authentication failed |
404 | Not found |
500 | Internal server error |
503 | Service unavailable |
2、判断字符串是否是加密数据
描述
判断字符串是否是加密数据
请求方式
POST
请求地址
https://hufu.jdcloud-api.com/v1/isEncryptData
请求参数
名称 | 类型 | 是否必需 | 默认值 | 描述 |
---|---|---|---|---|
cipher | String | False | 密文 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
result | Result | |
requestId | String | 请求ID |
Result
名称 | 类型 | 描述 |
---|---|---|
encryptData | boolean | 是否是虎符密文 |
返回码
返回码 | 描述 |
---|---|
200 | OK |
400 | Invalid parameter |
401 | Authentication failed |
404 | Not found |
500 | Internal server error |
503 | Service unavailable |
2、sdk
- java:https://docs.jdcloud.com/cn/sdk/java
- python:https://docs.jdcloud.com/cn/sdk/python
- go:https://docs.jdcloud.com/cn/sdk/go
- nodejs:https://docs.jdcloud.com/cn/sdk/nodejs
- php:https://docs.jdcloud.com/cn/sdk/php
- dotnet:https://docs.jdcloud.com/cn/sdk/dotnet
- cpp:https://docs.jdcloud.com/cn/sdk/cplusplus
- android:https://docs.jdcloud.com/cn/sdk/android
- rust:https://docs.jdcloud.com/cn/sdk/rust
- swift:https://docs.jdcloud.com/cn/sdk/swift
注:sdk version 为1.0.2;上述各开发语言的sdk中都涉及到了一个Client,每种语言的调用示例都是以云主机为例的,以python为例
demo 示例 # coding=utf-8 from jdcloud_sdk.core.credential import Credential from jdcloud_sdk.services.vm.client.VmClient import VmClient from jdcloud_sdk.services.vm.apis.DescribeInstanceTypesRequest \ import DescribeInstanceTypesParameters, DescribeInstanceTypesRequest access_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' secret_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' credential = Credential(access_key, secret_key) client = VmClient(credential) try: parameters = DescribeInstanceTypesParameters('cn-north-1') request = DescribeInstanceTypesRequest(parameters) resp = client.send(request) if resp.error is not None: print(resp.error.code, resp.error.message) print(resp.result) except Exception as e: print(e) # 错误处理
实际代码:需要将上述代码包名中的 “vm”替换为“hufu”,“vmClient”替换成“HufuClient”,具体参数按照 hufu 包下的参数进行替换即可,region参数统一都传“cn-north-1”,access_key和secret_key使用任意一个虎符应用的appKey和secretKey即可(虎符控制台地址:https://hufu-yd-console.jdcloud.com/#/hufu/list)。
参照demo示例稍加修改即可完成调用 # coding=utf-8 from jdcloud_sdk.core.credential import Credential from jdcloud_sdk.services.hufu.client.HufuClient import HufuClient from jdcloud_sdk.services.hufu.apis.EncryptRequest \ import EncryptParameters, EncryptRequest access_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' secret_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' credential = Credential(access_key, secret_key) client = HufuClient(credential) try: parameters = EncryptParameters('cn-north-1') request = EncryptRequest(parameters) resp = client.send(request) if resp.error is not None: print(resp.error.code, resp.error.message) print(resp.result) except Exception as e: print(e) # 错误处理
FAQ
1、如何导入依赖包
以java为例,京东云sdk文档中导入包的示例是以云主机为例的,要改成导入 hufu 的包。
<dependency> <groupId>com.jdcloud.sdk</groupId> <version>1.0.2</version> <artifactId>hufu</artifactId> </dependency>
2、如何导入c#依赖包
对于c#开发语言,请参考 https://www.nuget.org/packages/JDCloudSDK.Hufu/ 安装。
3、关于接口参数
接口只有一个必填参数:plaintext,其他参数可以不传。
4、如何模糊检索
加密结果前32位是随机码,后面是明文摘要,目前只支持前缀搜索
例如明文是 18800000000 ,加密后的结果是 8fc57ae1d770a0ce9f77f1015adc6c06d8119c950591f08152eb0e
如果搜索关键字是18800,加密结果是 9a00e9a5a00535b15582a3a4d6fb9532d8119c9505