海关179加签原理及加签步骤介绍

大家知道,海关手续办完后,会给2个usbkey,
一个是法人卡,一个是操作员卡,这两个卡操作权限不一样,这个操作员卡是用来对179报文进行数字签名的

什么是数字签名

所谓数字签名,采用的签名技术是,业界ATM机级别的加密技术,也是业内大名鼎鼎的非对称加密技术RSA
普通的加密可分为几类
格式加密:
如base64加密,urlencode,
算法公开,没有key,谁拿到密文都可以解密
摘要算法
md5,sha1,sha224,sha256,sha512等
常用的是md5,
这种就是计算摘要,使用这拿到原文后,通过摘要算法与摘要进行比较,如果相等则证明没有被篡改
摘要就是不可逆,md5使用很多,比如压缩包就有文件的md5校验
这个其实不算加密,因为无法解密
这个算摘要验证,其中大名鼎鼎的比特币用的就是sha256摘要
就是给出一个值的sha256摘要,然后挖矿者随机计算摘要值然后,对碰,如果碰到了就算你挖矿成功
对称加密:
des,3des,aes
这种就是加密方和解密用的是同一个key
加密方和解密方拿到的是同一把钥匙,只要拿到了钥匙就能打开密室
看到密文
非对称加密:
RSA,这种是非对称性加密
可以加解密,公钥加密,私钥解密
也可私钥签名,公钥验签
私钥是要自己保存的,要保存好, 公钥是可以随便给别人的
也就是说如果加密传输的话
双方都要有各自的私钥与公钥, 自己保留私钥,公钥给对方
公钥有: 有普通公钥,有X509证书
海关用的是x509证书
加密方式有Sha1WithRsa,Sha256WithRsa
海关用的是Sha1WithRsa

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
js加签一般都没有问题,我就是加签之后上传的问题弄了两个礼拜,最后弄清楚了。 以下是数据上报海关方法,我用的是.net的web方式: 1.添加三个引用,见dll文件夹。 2.加载我写的类:两个cs文件(放到web目录下) 3.组织上报数据实体格式如下 public class payExchangeInfoLists { public string orderNo { get; set; }//String 订单编号 public List goodsInfo { get; set; }// List 商品信息 public string recpAccount { get; set; }// String 收款账号 public string recpCode { get; set; }// String 收款企业代码 public string recpName { get; set; }// String 收款企业名称 } public class goodsInfo { public string gname { get; set; }// String 商品名称 public string itemLink { get; set; }// String 商品展示链接地址 } public class payExchangeInfoHead { public string guid { get; set; }// String 系统唯一序号 public string initalRequest { get; set; }// String 原始请求 public string initalResponse { get; set; }// String 原始响应 public string ebpCode { get; set; }// String 电商平台代码 public string payCode { get; set; }// String 支付企业代码 public string payTransactionId { get; set; }// String 交易流水号 public double totalAmount { get; set; }// double 交易金额 public string currency { get; set; }// String 币制 public string verDept { get; set; }// String 验核机构 public string payType { get; set; }// String 支付类型 public string tradingTime { get; set; }// String 交易成功时间 public string note { get; set; }// String 备注 } public class payExInfoStr { public string sessionID { get; set; }// string Y In 海关发起请求时,平台接收的会话ID。 public payExchangeInfoHead payExchangeInfoHead { get; set; }// String Y In 支付原始数据表头 public List payExchangeInfoLists { get; set; }// List Y In 支付原始数据表体 public string serviceTime { get; set; }// Long Y In 返回时的系统时间 public string certNo { get; set;
/api/USB 接口地址 常见错误结果和解决方法: 下面凑字数 {“code”:“20004”,“message”:“企业实时数据获取验证书未在服务系统注册”,“total”:0,“serviceTime”:1500000000000} 得到这个结果,说明证书没有注册,测试环境联系管理员,生产环境需要到单一窗口去注册上传。如果已经上传了的,去看看你填的ebpCode是否是你自己的。 {“code”:“20000”,“message”:“上传失败 java.lang.IllegalStateException: xxxx这里是错误信息内容”,“total”:0,“serviceTime”:1500000000000} 这个错误说明上传的数据格式不对,海关系统无法解析,注意看看是否有字段类型或者格式错误,也注意看具体看错误内容,一般都有提示。 {“code”:“20005”,“message”:“验失败”,“total”:0,“serviceTime”:1500000000000} 得到这个信息,说明上传的内容格式没问题了,验失败,可能加签过程不对,一般都是字符串或者加签格式不对导致的,相见加签部分的细节,注意比对加签内容的格式和样例是否一致。另外也要看看用得证书什么的有没有问题。 {“code”:“20006”,“message”:“上传失败,入库失败 java.sql.SQLException: ORA-00001: 违反唯一约束条件 (sessionID重复)”,“total”:0,“serviceTime”:1500000000000} 得到这个消息,恭喜你,测试基本成功了:加签成功、数据格式没有问题了,接下来就可以自己生成模拟数据去测试了。 {“code”:“10000”,“message”:“上传成功”,“total”:0,“serviceTime”:1500000000000} 恭喜,测试成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值