虎符不可逆加密接口协议及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
  • object-c: https://docs.jdcloud.com/cn/sdk/objective-c

  • 注: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

results matching ""

    No results matching ""