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的输出进制

  没有了~

posted on 2013-04-10 16:45  Z-fadeaway  阅读(273)  评论(0编辑  收藏  举报