怎么快速用程序一对一文字解密

怎么快速用程序一对一文字解密,第1张

用在线工具对文字加密解密,步骤如下:

1、打开在线工具官方网站。

2、点击菜单栏的“文字加密解密”。

3、最后我们在这里就可以使用在线工具的文字加密解密了。

加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。

// playFair 加密 你参考下

#include"stdioh"

#include"stringh"

#include"stdlibh"

#define x 50

char MiYao[x],PassWord[x],AddPass[x],Table[5][5],Map[25];

bool Visit[27]={false};

char English[27]="abcdefghijklmnopqrstuvwxyz";

void Input()

{

printf("请输入密钥:\t"); scanf("%s",MiYao);

printf("请输入待加密密码:\t"); scanf("%s",PassWord);

}

void Fun_5x5()

{

int count = 0,V =0;

/标记密钥内字符为: true/

for(int i=0;MiYao[i]!='\0';i++)

if(strchr(English,MiYao[i])!=NULL)

Visit[strchr(English,MiYao[i])-English] = true;

/执行密钥矩阵 *** 作 并标记已使用字符:true/

for(int i=0;i<5;i++)

for(int j=0;j<5;j++)

{

if(count<strlen(MiYao))

Table[i][j] = MiYao[count++];

else

{

while(Visit[V] != false) V++;

Table[i][j] = English[V];

Visit[V++] = true;

}

}

puts("∞∞∞密钥矩阵为∞∞∞");

for(int i=0;i<5;i++)

{ for(int j=0;j<5;j++)

printf("%3c",Table[i][j]);

puts("");

}

puts("∞∞∞∞∞∞∞∞∞∞∞");

}

int IsVisited(char ch)

{

return Visit[strchr(English,ch)-English]; //false 未出现过

}

void TabletoMap()

{ int count=0;

for(int i=0;i<5;i++)

for(int j=0;j<5;j++)

Map[count++]=Table[i][j];

Map[count]='\0';

}

void Judge()

{

int len = strlen(PassWord),i,j,k;

memset(AddPass,0,sizeof(char));

/一对对去字母,剩下单个字母,则不变化,直接放入加密串中/

if(len%2){

AddPass[len-1] = PassWord[len-1];

len -=1;

}

/一对中 密钥矩阵中 存在矩阵 egab 先输出a同行顶点在输出b同行顶点/

int row1,low1,row2,low2,a1,a2;

for(i=0;i<len;i+=2)

{

char c1,c2;

c1 = PassWord[i];

c2 = PassWord[i+1];

/一对中 两字母相同 无变化/

/一对中 有字母不在密钥矩阵中 无变化/

if(c1 == c2 || ( !IsVisited(c1)||!IsVisited(c2)))

{ AddPass[i] = c1;

AddPass[i+1]=c2;

}else{

a1 = strchr(Map,c1)-Map;

row1 = a1/5; low1 = a1%5;

a2 = strchr(Map,c2)-Map;

row2 = a2/5; low2 = a2%5;

/一对中 字符出现在同行或同列 简单swap字符/

if(row1 == row2 || low1 == low2)

{

AddPass[i] = c2;

AddPass[i+1] = c1;

}else{

AddPass[i] = Table[row1][low2];

AddPass[i+1] = Table[row2][low1];

}

}

}AddPass[len+1]='\0';

puts("加密后字符串:");

puts(AddPass);

puts("原串是:");

puts(PassWord);

}

int main()

{

Input();

Fun_5x5();

TabletoMap();

Judge();

return 0;

}

'图上的控件,你就照着摆上去,然后再把以下代码拷进去,就OK了

Dim lg As Integer

'加密

Private Sub Command1_Click()

Text2 = ""

Dim a(), b() As String

lg = Len(Text1)

ReDim a(lg), b(lg)

For i = 1 To lg

a(i) = Mid(Text1, i, 1)

b(i) = AscW(a(i)) Xor 4

Text2 = Text2 & ChrW(b(i))

Next

End Sub

'解密

Private Sub Command2_Click()

Text3 = ""

Dim a(), b() As String

lg = Len(Text2)

ReDim a(lg), b(lg)

For i = 1 To lg

a(i) = Mid(Text2, i, 1)

b(i) = AscW(a(i)) Xor 4

Text3 = Text3 & ChrW(b(i))

Next

End Sub

#include <stdioh>

#define isletter( c )    ( ((c)>='a'&&(c)<='z') || ((c)>='A'&&(c)<='Z') )

void Enc( const char str, char out, int key )

{

    int i = 0; 

    while( str[i] )

    {

        if ( isletter( str[i] ) )

        {

            out[i] = str[i] + key;

            if ( ! isletter( out[i])  )

                out[i] -= 26;

        }

        else

            out[i] = str[i];

        i++;

    }

    out[i] = 0;

}

void Denc( const char str, char out, int key )

{

    int i=0;

    while( str[i] )

    {

        if ( isletter( str[i] ) )

        {

            out[i] = str[i] - key;

            if ( ! isletter( out[i] ) )

                out[i] += 26;

        }

        else

            out[i] = str[i];

        i++;

    }

    out[i] = 0;

}

int main()

{

    char  out[100], out2[100];

    Enc( "THE QUICK BROWn fox jumps over THE LAZY DOG", out, 3 );

    printf( "%s\n", out );

    Denc( out, out2, 3 );

    printf( "%s\n", out2 );

}

以上就是关于怎么快速用程序一对一文字解密全部的内容,包括:怎么快速用程序一对一文字解密、用C语言设计一个加密 解密 密码 的程序。、用VB写个简单加密/解密程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9700504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存