有没有一种加密算法,把纯数字的加密成16位的密文,字母与数字组合的加密成32位的???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有一种加密算法,把纯数字的加密成16位的密文,字母与数字组合的加密成32位的???相关的知识,希望对你有一定的参考价值。

加密算法 字母32位 纯数字16位
有没有一种加密算法,把纯数字的加密成16位的密文,字母与数字组合的加密成32位的???
我在SQL数据库中发现的 密码都被加密了 纯数字的加密成16位的密文,字母与数字组合的加密成32位了 咋办?

刚开始学python,求哪位高手能给一个关于python的数字加解密算法,简单一点加密的话,可以对最后得出的hash值再处理即可。比如左移,右移,某8位替换 参考技术A 楼主,说明一下是什么样的加密算法。才能具体解答。 参考技术B md5

RSA加密算法

1.什么是RSA

  RSA是一种公钥加密算法,可用于公钥加密和数字签名

2.RSA加密

RSA加密过程可用下面的公式表达

密文=(明文^E) mod N

RSA的密文等于明文代表数字的E次方除以N 的余数

整个过程十分简单,只要知道E,N就能对明文进行加密。所以E,N的组合就是公钥。写成“公钥是{E,N}”

 

3.RSA解密过程

RSA解密也十分简单可用下面公式表达:

明文=(密文^D)mod N

所以D,N代表私钥(由于N是公钥的一部分,所以也可用说D是私钥)

 

下面就介绍如何生成E,D,N

4.密钥对生产

RSA密钥生成的步骤:

  (1)求N

  (2)求L (L是仅在生成密钥对的过程中使用的数)、

  (3)求E

  (4)求D

1.求N

  首先找到两个很大的素数p,q

N=p*q  (如果p,q太小密码会变得很容易破译)

2.求L

L是p-1,q-1的最小公倍数用lcm(p-1,q-1)表示

L=lcm(p-1,q-1)

3.求E

E是一个比1大,比L小的数。此外,E和L互质(最大公约数为1)

1<E<L
gcd(E,L)=1

找出gcd(E,L)=1的数,还要使用伪随机数生成器,生成大于1,小于L的E。再判断gcd(E,L)是否等于1.可用欧几里得辗转相除法求最大公约数

满足gcd(E,L)是为了保证一定存在解密所需要的D

求出E,N就生成了公钥

4.求D

数D由E计算得到。D、E、L之间必须存在下列关系:

1<D<L
E*D mod L=1

求出D 就是拥有了私钥

5.实践

准备两个质数p=17,q=19

N=17*19=323

L=lcm(17-1,19-1)=lcm(16,18)=144

有gcd(E,L)=1 可用得到E=5,7,11,13,17.……

E的选择有很多,这里选5,所以公钥是{E=5,N=323}

D*Emod L=1 E=5 可用找到D=29

所以私钥为{D=29,N=323}

1.加密

  要加密的明文必须是小于N的数

  假设明文为123

  密文=123^5 mod 323 =225

2.解密

  明文=225^29 mod 323=123

 

以上是关于有没有一种加密算法,把纯数字的加密成16位的密文,字母与数字组合的加密成32位的???的主要内容,如果未能解决你的问题,请参考以下文章

DES加密

DES加密

对称加密算法之DES算法

PHP md5密文转换成 16进制字符串?

RSA加密算法

对称加密与非对称加密