u@home:~$

  • Verilog里如果用case但default不是x会什么样

  • 只有.git目录 怎样把代码提取出来

    网上看到的,在.git同目录下 # 创建bundle文件 git bundle create ./reponame.bundle --all # 从bundle文件中clone出代码 git clone ./reponame.bundle reponame # 接下来文件夹内会出现一个 reponame 文件夹,这个文件夹内就是所有的代码文件 https://www.jianshu.com/p/92125cc920e1

  • RSA验证签名

    一直都没搞明白验证数字签名的算法到底叫什么。从RFC8017上看,用RSA算法验证数字签名的方法叫RSASSA-PKCS1-v1_5。 但这里面并没有规定用什么长度的modulus,比如是RSA2048还是RSA4096,是几个质数的算法(经典的RSA是pq两个大素数,但现在PKCS1 v2里有多个大素数的算法)。 hash算法也没有规定。 -v1_5表示的是encoding和padding的方式,比如还有RSASSA-PSS,这个encoding就是带salt的。 encoding和padding就是把要加密的明文,比如是一小串文字,加入padding凑成一个特定的长度。 比如RSA2048里modulus是2048,这个字符串转换成大数的长度也要是2048bits,但要比modulus小。 “RSASSA-PKCS1-v1_5 combines the RSASP1 and RSAVP1 primitives with the EMSA-PKCS1-v1_5 encoding method.” 因为padding有规定的方式,最少的padding也要占11个字节,也就是88个bit。所以RSA2048最大能加密的数据是2048-88=1960, 245个字节。 RSA2048的modulus n是2048bits,d可以是比较小的素数,但3这种太小的就不行,不过可以看出来d不会太大。RSA2048的公钥是n,d放一起,私钥是n,e放一起。 这有个padding的例子,明文比较小的话里面就有大量的FFFFFFFF填进去,同时也以字符的形式写明了hash用的时什么,比如下面这个时SHA-256。这些RFC里都有规定 RFC8017 9.2. EMSA-PKCS1-v1_5。