【有点难度的挑战哦】求高手帮忙破译这个加密算法!

来源:百度知道 编辑:UC知道 时间:2024/05/27 20:13:10
朋友给了一个数据库 要求帮忙破解里面的一组密码数据的算法。我用了我知道的密码算法来破译,但最终没能破译出来,所以请高手们出来帮忙看看,从以下提供的3组密码原文及加密后的密码帮忙推算出这个密码的算法,谢谢!

密码原文:112475 加密后的密码:/55995
密码原文:19880104 加密后的密码:/=;=21.8
密码原文:21331031 加密后的密码:5683015

这是一中安全性极低的加密算法,名叫维吉尼亚密码,一种以移位代换为基础的周期代换密码 为1858年法国密码学家维吉尼亚提出,他的想法就是周期性的将原文加上一个数字,详情请见:
http://baike.baidu.com/view/270838.htm
这里被加上的是{-2,4,3,5,2,0}六个数字,
我写了C++程序来实现加密:
#include<iostream>
#include<string>
using namespace std;
const int code[6]={-2,4,3,5,2,0};
main()
{
string word;
while(cin>>word)
{
for(int i=0;i<word.size();i++)
word[i]+=code[i%6];
cout<<word<<endl;
}
return 0;
}

(112475 /55995,32) = 4c0d5ca6771f39fb2bb44c8506d7e568
(112475 /55995,16) = 771f39fb2bb44c85
(19880104/=;=21.8,32) = 88562426a3a65c6925904e72d6bd8c7d
(19880104/=;=21.8,16) = a3a65c6925904e72
(21331031 /5683015,32) = 8cb83ec25723327abc05702af3530bf5
(21331031 /5683015,16) = 5723327abc05702a
你还是自己算吧,算的有些头疼0.0后面自己想