当前位置:首页 » 软件设计 » 设计加密算法

设计加密算法

发布时间: 2020-12-08 06:52:59

⑴ 一种身份认证系统中数据加密算法的设计 要求:用于身份认证的ID和口令都要进行加密,设计出一种加密算法。

l iceEncryptText 文本加密解回密答
http://dl.icese.net/src.php?f=iceEncryptText.src.rar

⑵ 根据FEISTEL密码结构设计一个16位,迭代4轮的加密系统,并已明文为theend为例说明你所设计的加密系统加密

对称加密算法
对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。
不对称加密算法
不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
最早的公钥算法是有凯撒大帝发明的,所以也叫凯撒算法,凯撒算法是很简单的算法,它的学名是“单表替换算法”。就如同这个算法名称的字面意思一样,他把一个字母替换成另一个字母,比如:把 "a" 替换成 "b", "c" 替换成 "d" 以此类推, 直到把 "z" 替换成 "a",这里每个字母都备下一个字母替换,所以密钥就是1(如果密钥是2则把 "a" 替换成 "c")。
它不是对称加密算法!

⑶ 设计一个密钥加密算法

评什么人家要帮你设计呢?

⑷ 用JAVA设计一个简单的加密、解密算法,用该算法来实现对数据的加密、解密

简单的?

用异或就可以了..!

importjava.util.Scanner;

publicclass加密
{
privatestaticScannersc=newScanner(System.in);
publicstaticvoidmain(String[]Args)
{
.out.println(" ================字符串加密演示===================== ");
init();
}
//初始化!
privatestaticvoidinit()
{
for(;;)
{
char[]arr=input();
jiaMi(arr,20140908);
jiaMi(20140908,arr);
}

}
//键盘录取!
privatestaticchar[]input()
{
Strings=sc.nextLine();
inta=s.length();
char[]arr=newchar[a];
//char[]arr=s.toCharArray();
for(inti=0;i<s.length();i++)
{
arr[i]=s.charAt(i);
}
returnarr;
}
//加密!!
privatestaticvoidjiaMi(char[]arr,inta)
{
for(inti=0;i<arr.length;i++)
{
arr[i]=((char)(arr[i]^a));
}
System.out.println("加密完成!");
print(arr);
}
//解密!!
privatestaticvoidjiaMi(inta,char[]arr)
{
for(inti=0;i<arr.length;i++)
{
arr[i]=((char)(arr[i]^a));
}
System.out.println("解密完成");
print(arr);
}
//打印!!
privatestaticvoidprint(char[]arr)
{
for(inti=0;i<arr.length;i++)
{
System.out.print(arr[i]);
}
System.out.println(" ========================= ");
}
}

⑸ 用c语言设计一个简单地加密算,解密算法,并说明其中的原理

恰巧这两天刚看的一种思路,很简单的加密解密算法,我说一下吧。
算法原理很简专单,假设你的原密码是A,用A与数属B按位异或后得到C,C就是加密后的密码,用C再与数B按位异或后能得回A。即(A异或B)异或B=A。用C实现很简单的。
这就相当于,你用原密码A和特定数字B产生加密密码C,别人拿到这个加密的密码C,如果不知道特定的数字B,他是无法解密得到原密码A的。
对于密码是数字的情况可以用下面的代码:
#include <stdio.h>
#define BIRTHDAY 19880314
int main()
{
long a, b;

scanf("%ld", &a);
printf("原密码:%ld\n", a);
b = BIRTHDAY;
a ^= b;
printf("加密密码:%ld\n", a);

a ^= b; printf("解密密码:%ld\n", a);
return 0;
}
如果密码是字符串的话,最简单的加密算法就是对每个字符重新映射,只要加密解密双方共同遵守同一个映射规则就行啦。

⑹ 用c语言设计一个简单地加密算,解密算法,并说明其中的原理

题目标题:神秘的字符加、解密技术。
题目描述:
插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。
提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。
输入描述:输入一行:密文字符串。
输出描述:输出有一行:翻译后的明文字符串。
样例输入:
Coheifnia

样例输出:
China

答案:
#include <iostream>
using namespace std;
int main( )
{
char ci[81],pl[81];
int j,k;
cin>>ci;
for(j=k=0;ci[j]!='\0';j++)
if(j%2==0)
{
pl[k]=ci[j];
k++;
}
pl[k]='\0';
cout<<pl<<endl;
return 0;
}

⑺ 用c语言设计了一个加密算法:用a代替z,用b代替y,用c代替x,……,用z代替a。

#include
<stdio.h>
int
main()
{
char
s[100],*p;
printf("请输入字符串
:
");
gets(s);
p
=
s;
while(*p)
{
if((*p
>=
'a')
&&
(*p
<=
'z'))
/*处理小写*/
{
*p
='z'
-
*p
+
'a';
}
if((*p
>=
'A')
&&
(*p
<=
'Z'))
/*处理大写,同理处理数字亦版一样..自己例推*/
{
*p
='Z'
-
*p
+
'A';
}
p++;
}
printf("转换后权的字符串为
:
%s\n\n",s);
return
0;
}

⑻ 6.设计一个加密解密程序。输入一串字符,使用加密算法,对其加密。再设计解密算法,对其解密。

#include<stdio.h>
intmain()
{chars[200];
inti;
gets(s);
for(i=0;s[i];i++)
s[i]+=i%5+1;
printf("加密抄后: %s ",s);
for(i=0;s[i];i++)
s[i]-=i%5+1;
printf("解密后: %s ",s);
return0;
}

PrivateSubCommand1_Click()
s=InputBox("请输入要加密的字符串:")
Print"输入的字符串是:"
Prints
Fori=1ToLen(s)
Mid(s,i,1)=Chr(Asc(Mid(s,i,1))+iMod5+1)
Nexti
Print
Print"加密后的串:"
Prints
Fori=1ToLen(s)
Mid(s,i,1)=Chr(Asc(Mid(s,i,1))-iMod5-1)
Nexti
Print
Print"解密后的串:"
Prints
EndSub

⑼ u盘加密算法的设计与实现

加密U盘最简单的方法就是使用U盘超级加密3000
U盘超级加密3000是一款专业的U盘加回密软件,可以答加密任意文件夹,并且支持硬盘加密。
U盘超级加密3000操作简单,免安装,只要下载U盘超级加密3000到您指定的U盘就可以了。

⑽ 设计一个简单的数据加密算法

// ecfileDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ecfile.h"
#include "ecfileDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
CAboutDlg();

// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA

// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEcfileDlg dialog

CEcfileDlg::CEcfileDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEcfileDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEcfileDlg)
m_path = _T("");
m_pass = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CEcfileDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEcfileDlg)
DDX_Text(pDX, IDC_PASSWORD, m_path);
DDX_Text(pDX, IDC_PASS1, m_pass);
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CEcfileDlg, CDialog)
//{{AFX_MSG_MAP(CEcfileDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_E, OnE)
ON_BN_CLICKED(IDC_D, OnD)
ON_BN_CLICKED(IDC_BROW, OnBrow)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BOOL CEcfileDlg::OnInitDialog()
{
CDialog::OnInitDialog();

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);

return TRUE;
}

void CEcfileDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}

void CEcfileDlg::OnPaint()
{
CDialog::OnPaint();
}

HCURSOR CEcfileDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}

void CEcfileDlg::OnE()
{
UpdateData(TRUE);
if(m_path == "")
{
AfxMessageBox("怎么没有选择要加密的文件就开始加密啊?");
return;
}

UpdateData(TRUE);
if(m_pass == "")
{
AfxMessageBox("没有写上密码");
return;
}

if(ecfile(m_path))
{
MessageBox("加密成功了已经");
}
else
{
MessageBox("没加密成功");
}
}

void CEcfileDlg::OnD()
{
UpdateData(TRUE);
if(m_path == "")
{
AfxMessageBox("怎么没有选择要加密的文件就开始解密啊?");
return;
}

UpdateData(TRUE);
if(m_pass == "")
{
AfxMessageBox("没有写上密码");
return;
}

if(dcfile(m_path))
{
MessageBox("解密成功了");
}
else
{
MessageBox("解密失败了");
}
}

void CEcfileDlg::OnBrow()
{
CFileDialog dlg(TRUE);
if(dlg.DoModal() == IDOK)
{
m_path = dlg.GetPathName();
UpdateData(FALSE);
}
else
{
return;
}
}

//给文件加密的函数
BOOL CEcfileDlg::ecfile(LPCTSTR fpath)
{
char *data;
CFile *file;
DWORD flen;

m_password = epass();

file = new CFile;
if ( !file->Open(fpath, CFile::shareDenyNone|CFile::modeReadWrite))
{
return FALSE;
}

flen = file->GetLength();
data = new char[(int)flen];

file->SeekToBegin();
file->Read(data, flen);

for(int i=0; i<(int)flen; i++)
{
data[i] ^= m_password;
data[i] ^= flen;
}

file->SeekToBegin();
file->Write(data, flen);
delete[] data;

//添加密码验证信息
char cpass[5] = "love";
for(int j=0; j<5; j++)
{
cpass[j] ^= m_password;
}
file->SeekToEnd();
file->Write(&cpass, 5);
file->Close();
delete file;

return TRUE;
}

//给文件解密的函数
BOOL CEcfileDlg::dcfile(LPCTSTR fpath)
{
char *data;
CFile *file;
DWORD flen;
char love[5];

file = new CFile;
if( !file->Open(fpath, CFile::shareDenyNone|CFile::modeReadWrite))
{
return FALSE;
}

flen = file->GetLength();
data = new char[(int)flen];

//检验密码是不是正确
file->Seek(-5, CFile::end);
file->Read(&love, 5);

m_password = epass();

for(int i=0; i<5; i++)
{
love[i] ^= m_password;
}

if(strcmp(love, "love")!=0)
{
return FALSE;
}

//解密
file->SeekToBegin();
file->Read(data, flen);

for(int j=0; j<(int)flen; j++)
{
data[j] ^= m_password;
data[j] ^= (flen-5);
}
file->SeekToBegin();
file->Write(data, flen);
file->SetLength(flen-5);
file->Close();

delete[] data;
delete file;
return TRUE;
}

//获得密码的函数
__int64 CEcfileDlg::epass()
{
DWORD plen;
char *ppass;
__int64 mc= 8757735233305;
UpdateData(TRUE);

ppass = m_pass.GetBuffer(0);

plen = strlen(ppass);

for(int i=0; i<(int)plen; i++)
{
mc ^= ppass[i]|128;
}
return mc;
}

热点内容
美发店认证 发布:2021-03-16 21:43:38 浏览:443
物业纠纷原因 发布:2021-03-16 21:42:46 浏览:474
全国著名不孕不育医院 发布:2021-03-16 21:42:24 浏览:679
知名明星确诊 发布:2021-03-16 21:42:04 浏览:14
ipad大专有用吗 发布:2021-03-16 21:40:58 浏览:670
公务员协议班值得吗 发布:2021-03-16 21:40:00 浏览:21
知名书店品牌 发布:2021-03-16 21:39:09 浏览:949
q雷授权码在哪里买 发布:2021-03-16 21:38:44 浏览:852
图书天猫转让 发布:2021-03-16 21:38:26 浏览:707
宝宝水杯品牌 发布:2021-03-16 21:35:56 浏览:837