shell和bc
前言:
最近在写毕设,其中有RSA的实现,开始以为很简单,不过查了一下,密钥要求1024位以上....
RSA的密钥长度指的是,P,Q,两个大素数的乘积N的2进制位数;
在测试定义多少位的P,Q可以生成超过1024位的密钥的时候很麻烦,没有转换器啊,很长一段10进制数,鬼知道它的2进制位数....
然后有了如下代码:
将10进制转化位2进制,并打印长度,支持大数~
1 #!/bin/bash 2 read num //从标准输入读入数据到num中 3 echo $num | wc -c //打印num的长度 4 number=`echo "obase=2;ibase=10;$num" | bc` //将num转化位2进制,存入number 5 echo $number //打印number 6 echo $number | wc -c //打印number的位数
后言:
突然发现,bc很强大,有没有~可以进行大数运算
ibase 设置bc的输入进制
obase 设置bc的输出进制
没有了~
浙公网安备 33010602011771号