更新时间:2024-07-15 GMT+08:00
分享

存证管理

完成企业认证后,即可开通可信存证管理功能。

前提条件

  • 已获取管理控制台的登录账号与密码。
  • 提前准备好存证文件,通过控制台上传时,文件大小不能超过20MB;大于20MB,请在本地实现文件加密,然后上传对应哈希。

购买套餐包

  1. 登录DAC管理控制台,在页面左上方选择区域。
  2. 在左侧导航栏共享版下方,单击“可信存证 > 总览”,进入“总览”页面。
  3. 在“总览”页面,单击页面右上角的“购买套餐包”。
  4. 在配置参数页面,选择套餐包规格。

    表1 参数说明

    参数

    说明

    类型

    可信存证

    购买对象

    套餐包

    套餐包规格

    支持四种规格:100次、1万次、10万次、50万次。

    有效周期

    • 当套餐包规格选择100次时,默认为1月,无法修改。
    • 当套餐包规格选择1万次、10万次、50万次时,默认为1年,无法修改。

    购买数量

    购买套餐包个数,取值为1到999之间的整数。

    说明:
    • 套餐包购买后不支持退款。
    • 套餐包在生效期内,先扣除已购买套餐包内的额度,超出部分按当月累计使用量进行按需计费。

  5. 单击“立即购买”。

    确认基本信息无误后,请仔细阅读并勾选“我已阅读并同意《华为云用户协议》、《免责声明》和《华为云数字资产链服务协议》”。

  6. 单击“去支付”。支付成功后可在“费用与成本 > 我的套餐 > 资源包”页面的资源包列表中查看新购买的套餐包。详情请参见资源包
  7. (可选)单击左侧导航栏的“套餐包管理”,即可查看可信存证套餐包使用情况,详细操作请参考查看套餐包

新增存证

  1. 单击左侧导航栏的“可信存证 > 存证管理”,进入“存证管理”页面。
  2. 单击“新增存证”。
  3. 在新增存证页面,选择普通存证的类型,添加文件,自定义存证名称。

    目前仅支持普通存证。

  4. 单击“确定”。添加成功后,存证管理页面会显示一条存证记录,可以查看证据指纹和证据ID等信息。

  5. 在存证管理页面可以查看添加成功后存证名称,存证类型,证据指纹,存证ID,存证时间。
  6. 单击对应存证操作列的“查看证书”即可查看和下载华为云区块链BCS签发的证书。

哈希生成

可信存证服务后端只做简单的哈希上链。请您将上链的文件哈希提前生成。哈希值请采用国密SM3算法。如果您在需要在代码中集成,可参考该算法的开源库实现。

  • go语言的简单示例如下:
    // go.mod依赖
    require github.com/tjfoc/gmsm v1.4.1
    // 示例代码
    package main
    
    import (
       "fmt"
       "github.com/tjfoc/gmsm/sm3"
    )
    func main() {
       data := "test"
       h := sm3.New()
       h.Write([]byte(data))
       sum := h.Sum(nil)
       fmt.Printf("%x\n", sum)
    }
    输出
    55e12e91650d2fec56ec74e1d3e4ddbfce2ef3a65890c2a19ecf88a307e76a23
  • java语言的简单示例如下:
    // maven依赖
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk18on</artifactId>
        <version>1.72</version>
    </dependency>
    // 示例代码
    package sm3;
    import org.bouncycastle.crypto.digests.SM3Digest;
    import org.bouncycastle.pqc.legacy.math.linearalgebra.ByteUtils;
    public class demo {
        public static void main(String[] args) {
            byte[] srcData = "test".getBytes();
            SM3Digest digest = new SM3Digest();
            digest.update(srcData, 0, srcData.length);
            byte[] hash = new byte[digest.getDigestSize()];
            digest.doFinal(hash, 0);
            System.out.println(ByteUtils.toHexString(hash));
        }
    }
    输出
    55e12e91650d2fec56ec74e1d3e4ddbfce2ef3a65890c2a19ecf88a307e76a23

相关文档