導航:首頁 > 源碼編譯 > 簡單的加密演算法

簡單的加密演算法

發布時間:2022-02-06 12:24:03

㈠ 有沒有原理比較簡單的非對稱加密演算法

非對稱加密之所以有效就在於數學上目前還沒有解決那麼難的問題。如果原理簡單,數學上都解決了,那麼就很容易破解。就談不上什麼保密了。。

㈡ 簡單加密演算法

1.找本數字比較多的書。
2.隨便在書中找到要加密的2位數。
3.兩位頁數+兩位行數+兩位位數,就是密碼。

只要別人不知道你加密的是什麼書,基本破譯不出來。

㈢ 求簡單的對稱加密演算法!!!!!!!!

其實很簡單,所謂解密就是逆過程,你將加密演算法的結果設置為x,然後用你加密的公式求解,得到的計算公式就是解密演算法,看你用的演算法,你可以參考「仿射加密演算法」就行了

㈣ 設計一個簡單的數據加密演算法

// 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;
}

㈤ 求一個簡單的加密演算法 有常式給分

//加密一
//原理: 密碼表
// 原文: 0,1,2,3,4,5,6,7,8,9
// 密文: 5,8,4,9,6,7,3,1,2,0
// 函數 c(char*,int) 為加密. 傳入字元串指針, 字元串長度.

char yuanwen[10] = {0,1,2,3,4,5,6,7,8,9};
char miwen[10] = {0,5,8,4,9,6,7,3,1,2};

void c(char *p, int l)
{
while(l>0)
{
if((*p) >= '0') && (*p <= '9'))
{
*p = miwen[*p];
}
l--;
}
}

㈥ 簡單數據加密演算法

// 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 ;
//}}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;
}

㈦ C++ 求個簡單的加密演算法

Try ``RC4``

㈧ 用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;
}
如果密碼是字元串的話,最簡單的加密演算法就是對每個字元重新映射,只要加密解密雙方共同遵守同一個映射規則就行啦。

㈨ 請介紹一些簡單的加密演算法

如果簡單的話 自己就可以處理
A:字元串替換
B :字元串位移

這種方式 你在程序裡面 約定好自己的規則 一下子沒法看懂 如果多段字元串對比 就會發現

㈩ 輕量級 加密演算法 有哪幾種

注:(以下內容我是從網上找的,不知道能不能幫到你..這些問題我也不怎麼懂!!)
1.AES(Advanced Encryption Standard),
AES是一個使用128為分組塊的分組加密演算法,分組塊和128、192或256位的密鑰一起作為輸入,對4×4的位元組數組上進行操作。AES的每一輪加密都包含4個階段,分別是AddRoundKey,SubBytes,ShiftRows,和MixColumns。眾所周之AES是種十分高效的演算法,尤其在8位架構中,這源於它面向位元組的設計。
AES 適用於8位的小型單片機或者普通的32位微處理器,並且適合用專門的硬體實現,硬體實現能夠使其吞吐量(每秒可以到達的加密/解密bit數)達到十億量級。同樣,其也適用於RFID系統。[3]高效的實現和演算法的免費使用為AES在無線區域網和後來出現的相關協議中的應用鋪平了道路。
2.DESL(Data Encryption Standard Lightweight Extension),
數據加密標准(DES)是由美國聯邦信息處理標准在1976年為美國選出的一種加密演算法。作為一個分組加密演算法,DES在64位大小的分組快上進行操作,其密鑰同樣也是64位。[10]DES的大致結構由Feistel網路組成,此網路中包括含有8個S-Boxes的16次完全相同的基本輪回,一次初始排列,一次最終排列和一個獨立的密鑰次序表。
3.XXTEA
TEA微型加密演算法最初是由David Wheeler和Roger Needham在1994年以Fast Software Encryption工作室的名義發表的,設計的重點在於描述與實現的簡單性。它是一種分組加密演算法,以128位的密鑰對64位的分組塊進行操作。[6]TEA遭受到等效密鑰的困擾——每個密鑰與其他是那個密鑰是等效的,也就是說有效的密鑰長度只有126位。此演算法易受到相關密鑰(Related Key)攻擊法的攻擊。

閱讀全文

與簡單的加密演算法相關的資料

熱點內容
android如何新建activity 瀏覽:737
ntp支持的認證演算法 瀏覽:710
想做快手主播需要什麼app 瀏覽:921
阿里雲伺服器如何轉賬戶 瀏覽:901
編譯器和解釋器實現技術完全不同 瀏覽:429
虐殺原形漢化補丁怎麼解壓 瀏覽:643
文件夾驗證失敗 瀏覽:635
python是用什麼軟體編程 瀏覽:247
java並發編程教程 瀏覽:319
江鈴寶典空調壓縮機工作時間過短 瀏覽:634
自製單片機玩具車 瀏覽:901
stm32單片機模塊電源電壓 瀏覽:187
pdf層次 瀏覽:735
電腦里找不到編譯器 瀏覽:843
明茨伯格pdf 瀏覽:442
把網頁存成pdf 瀏覽:268
如何對電腦的d盤加密 瀏覽:101
刀片式伺服器怎麼連接電腦 瀏覽:82
矩陣計算java 瀏覽:235
如何把各銀行app整合 瀏覽:881