首先在python里面from Crypto.Util.number import * 里面可以使用到这两个函数,简单来说是可以将字符串转换成一串数字和将一串数字转换成字符串。这种转换方法是有别于挨个转换成ascii码的
首先先说说bytes_to_long的作用。他在python里面是首先要对字符串进行编码使用的,即encode。将 'helloworld' 转换成 b'helloworld' 其实就是把python默认的UTF-8转换成bytes编码。完成这项操作后,我们使用bytes_to_long函数,发现对于单个字符,例如 'b' 他将转换成 98。即是他的ascii码,但是一旦变成 'bb' 就不是想象中的 9898 了。而是 25186 。经过查阅资料,发现实际上会对挨个字符进行移位处理。具体是先将每个字符转换成对应的ascii十进制值,然后转换成二进制,即bytes所谓的8位,如果不足则补全。那么对于 'bb' 会变成 01100010 01100010 然后连接起来就是110001001100010,那么把这个二进制数转换成十进制就是25186

在上面我们说明白了正向的转换,那逆向过来也能更好一点地理解。针对一个十进制数,先将这个数转换成二进制数,然后从末尾八位数八位数转换成十进制数,然后在转换成ascii对应的字符。