签名验签流程大体如下:

原文进行hash,得到hash值,个人用自己的私钥对hash值加密得到一个签名值,将自己的原文,签名值,公钥证书发送给银行,银行用根证书验证对方的公钥证书是否有效,有效取出公钥证书中的公钥来,将个人发来的签名值进行解密,得到hash值,将原文进行hash得到一个hash值,进行对比

现在国内网银基本上用的都是公钥解密,私钥签名加密。银行U盾签名验签的过程是:1.申请U盾,银行核实信息,并将相关信息绑定U盾,再将U盾(内含私钥、公钥)下发给用户。银行保留证书的公钥信息或用户自行将公钥证书导入到银行服务器中,并与用户绑定。2.用户在网银做交易,和银行之间交互的业务数据请求称为报文原文,用户使用U盾签名,用私钥将报文原文加密,并将加密后的密文和原文一起发送到银行。3.银行的验签服务器收到信息后,根据原文及用户信息,找到用户的公钥,再根据公钥,密文,原文去验证签名是否正确(用公钥解密,并与原文比较),验证通过则继续这次交易,验证不通过将认定为不合规交易,终止交易。银行通过数字签名保证了数据的完整性和安全性(任何修改原文或密文的行为会导致验签不通过),同时也保证了交易的来源确定性,私钥只有U盾持有者有。