简单的加密与解密的实现---仿射密码

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <string.h>
using  namespace  std;
int  main()
{
     void  encrytion_decrypt( char  input[], int  len);
     char  input[10];
     cout<< "Please input password:" ;
     cin>>input;
     int  len;
     len= strlen (input);
     cout<< "\n" << "password is:" <<input<<endl;
     encrytion_decrypt(input,len);
     
     return  0;
}
 
void  encrytion_decrypt( char  input[], int  len)             //加密_解密函数
{
     // 仿射加密公式 : f(x)=3x+2;
     int  i;
     char  string[10];
     for (i=0;i<len;i++)
     {
         int  a;
         a=(input[i]-97)*3+2;     //加密
         if (a>25)     //对照为0-25     mod为26
         {
             do      //保证不超出域
             {
                 a=a-26;    
             } while (a>25);
             a=a+97;         //加密后得到的ASC码;
             string[i]=( char )a;
         }
         else
         {
             a=a+97;
             string[i]=( char )a;
         }
 
     }
     cout<< "encrytion password is:" ;
     for (i=0;i<len;i++)
     {
         printf ( "%c" ,string[i]);
     }
     cout<<endl;
     char  res[10];
     for (i=0;i<len;i++)                 //解密过程
     {
         int  b;
         b=(string[i]-97)-2; 
/*        if(b==0)
         {
             res[i]=(char)(b+97);
             continue;
         }                              */
         while (b%3!=0)
         {
             b=b+26;
         }
         b=b/3;
         res[i]=( char )(b+97);
     }
     cout<< "keyword is:" ;
     for (i=0;i<len;i++)
         printf ( "%c" ,res[i]);
     cout<<endl;
}




本文转自 nw01f 51CTO博客,原文链接:http://blog.51cto.com/dearch/1748067,如需转载请自行联系原作者
相关文章
|
3月前
|
移动开发 JavaScript 安全
js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
111 0
|
1月前
|
编解码 Java Nacos
nacos常见问题之密码加密配置如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
139 0
|
1月前
|
存储 运维 Nacos
nacos常见问题之连接用户名和密码把明文用户名和密码进行加密如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
184 2
|
1月前
|
应用服务中间件 Nacos 数据安全/隐私保护
nacos常见问题之如何用明文密码做加密
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
115 0
|
1月前
|
存储 API 数据库
微搭低代码密码加密存储
微搭低代码密码加密存储
|
3月前
|
安全 算法 Java
spring security 如何对密码进行加密
spring security 如何对密码进行加密
|
3月前
|
存储 JSON 安全
使用shiro对数据库中的密码进行加密存储(java+springboot+shiro)
使用shiro对数据库中的密码进行加密存储(java+springboot+shiro)
91 0
|
3月前
|
数据安全/隐私保护 C++
c++实现http客户端和服务端的开源库以及Base64加密密码
c++实现http客户端和服务端的开源库以及Base64加密密码
|
4月前
|
XML 算法 数据安全/隐私保护
Shiro -认证凭据(密码)加密的那些事
Shiro -认证凭据(密码)加密的那些事
37 0