|
[讨论]密码转义
@wsy 转义不是替代,替代一般是某元素用其它元素替代。转义是将元素或元素组合用其它元素组合代替,这里完全是为了扩展用户密码用的,你不能领会笔者的意图,就别讨论了。 至于你说什么送给美军用,什么和NSA讨论不知什么用意,你想那样随便,但别胡说八道? |
|
细分加密方法
我没认为自己有什么发明,那些东西早就有,就看你怎么用了。以前用过的东西谁都可以用,随便说说细分,你就说别人早有过,四则运算早有过你难道不用了吗,我说对细分的看法你可以批判或做个老实看客,说什么早有过实在可笑。 |
|
细分加密方法
@wsy 不要混淆视听,细分方法不是分组密码,依然是流密码加密只不过化整为零而已。不懂就少说废话吧。 |
|
|
|
细分加密方法
哈哈,有人细分了那是他的事,我不爱学习知道的不多。偶然感觉细分有些用处就探索如何用于信息加密。 实际安全加密已经不是问题了。只要将明文首先变为看不懂的乱码,再加密就可以了,任谁也无法破解。 继续探索无非是希望一次加密就实现安全加密而已。希望大家支持。 |
|
文件安全加密
不敢当,一点加密的雕虫小技而已。 |
|
文件安全加密
我理解是直接用于加密或解密的数据。你说呢? |
|
文件安全加密
利用与明文等长的密钥数组加密文件并非不可能,也许方法有很多,这里仅举一例。 |
|
文件安全加密
本加密程序如果用穷举攻击是有可能被攻破的。条件是你能看懂明文的特征,所以当穷举了可能的输入去解密时,正解就在其中了,你只要找到它就OK了,但是如果你看不懂明文就没戏了。这种情况出现在明文超短时,一两个字节,是没有什么意义的,所以看不懂是什么东西是自然的。 我要是将明文分解到一个字节一组去加密,你还有希望看懂吗?虽然这个加密程序没有这样,但这是很容易做到的。所以用单一程序加密也是能实现安全加密的。 |
|
[原创]神奇的文件加密
谢谢鼓励,这个软件的使用有几分趣味性,并且不易破解,缺陷是 1)需要关联不变化的文件。2)操作方式不好记忆。如果是长期加密最好记忆在其它媒介上例如纸上等。 |
|
[讨论]sjdkx说:des不可破解
des还真没用过细节也不清楚,据说其密钥太短容易被破解。倒是用过AES,由于不喜欢分组密码,最后只用流密码了。 |
|
[讨论]sjdkx说:des不可破解
动机都是探索吧。 凡是应用密码加密的程序都有可能被破解,原因是用户密码是有限的,当你列举了所有可能输入的密码去解密,势必正确的密码也在其中,你只要找到正解即可,前提是你必须能看懂正解否则也不可能成功。 我认为要想安全加密一般单一一个程序是不行的,首先要破坏掉明文的特征,这可以用多种方法,例如预加密、数值变换、使用编码等都可以达到目的,第二步才是正式加密,这样才能达到安全加密的目的。 |
|
解密就是个笑话
观念也在不断变化中,以前认为解密是个笑话。现在认为解密不是笑话了。 凡是使用密码的加密都可能被破解。当然这是有条件的,因为密码是有限的,所以穷举攻击有可能覆盖所有输入,一旦包括了正确的密码,正解也包含在被解密的文件中,如果明文是可以识别的,你在这些文件中找到它即可,如果是不可识别的你将无能为力。 |
|
文件安全加密
谢谢wsy找出许多漏洞,但那些无关紧要。强大的是方法而不是细节。 我的理论就是乱码不可破解,因为乱码没有特征所以无法破解。一般加密软件没有绝对安全的,这是因为用户密码长度是有限的,所以可能被穷举攻击所击破,当然可能需要很长时间,但这种可能性是不能排除的。 我的目标也很简单——就是加密不可破解。实际应用乱码不可破解的理论这点已经做到了,只要将明文的特征去掉再加密就不可破解了,这倒不一定加密两次,先对明文做无损变换或编码等都可以,然后再加密,就是这么简单。 |
|
[注意]请不要侮辱民科
民科可担当不起,就是个密码学爱好者,也不爱学习,瞎玩玩而已。 我的理论就是乱码不可破解,因为乱码没有特征所以无法破解。一般加密软件没有绝对安全的,这是因为用户密码长度是有限的,所以可能被穷举攻击所击破,当然可能需要很长时间,但这种可能性是不能排除的。 我的目标也很简单——就是加密不可破解。实际应用乱码不可破解的理论这点已经做到了,只要将明文的特征去掉再加密就不可破解了,这倒不一定加密两次,先对明文做无损变换或编码等都可以,然后再加密,就是这么简单。 |
|
文件安全加密
@was 穷举攻击就那么灵吗?你别做梦了。靠单一的程序也许你能得逞。前面的帖子也说了,若想安全加密实际操作时,对明文进行预加密破坏其特征,再进行进一步加密才能安全,你懂吗? 安全加密就是不可破解的加密,否则毫无意义。 |
|
文件安全加密
源码很辣鸡 ====================================================================== // jiamiDlg.cpp : implementation file // #include "stdafx.h" #include "jiami.h" #include "jiamiDlg.h" #include <io.h> #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif int bc=0; CString d1,d2; char name[400][250]; char mi[1000]; int wjs,zz=0; int bz=1; //加解密标志 void HanShu(char *filename,int bz); //加密解密函数 //加密解密函数 调用方式 HanShu(文件名,控制变量bz) 加密bz=1 解密bz=-1 ///////////////////////////////////////////////////////////////////////////// // 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() ///////////////////////////////////////////////////////////////////////////// // CJiamiDlg dialog CJiamiDlg::CJiamiDlg(CWnd* pParent /*=NULL*/) : CDialog(CJiamiDlg::IDD, pParent) { //{{AFX_DATA_INIT(CJiamiDlg) m_edit = _T(""); //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CJiamiDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CJiamiDlg) DDX_Text(pDX, IDC_EDIT1, m_edit); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CJiamiDlg, CDialog) //{{AFX_MSG_MAP(CJiamiDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTTON5, OnButton5) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_BUTTON3, OnButton3) ON_BN_CLICKED(IDC_BUTTON4, OnButton4) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CJiamiDlg message handlers BOOL CJiamiDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. 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); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon WinExec("ml.bat",SW_HIDE); //删除没用的文件 // GetDlgItem(IDC_EDIT1)->SetFocus( );//让编辑窗口获得焦点 GetDlgItem(IDC_BUTTON2)->EnableWindow(false); //按钮2变灰 GetDlgItem(IDC_BUTTON3)->EnableWindow(false); //按钮3变灰 GetDlgItem(IDC_BUTTON4)->EnableWindow(false); //按钮4变灰 return TRUE; // return TRUE unless you set the focus to a control } void CJiamiDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CJiamiDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CJiamiDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } //密码确认 void CJiamiDlg::OnButton1() { // TODO: Add your control notification handler code here CStatic* static1=(CStatic*)GetDlgItem(IDC_STATIC1); UpdateData(TRUE); //刷新数据 shang: ; if(m_edit != "") //m_edit 是edit串(String) { if(bc==0) //bc用于区分第一和第二次输入密码 { static1->SetWindowText("请再次输入密码"); d1=m_edit; bc=1; m_edit = _T(""); GetDlgItem(IDC_EDIT1)->SetFocus( );//获得焦点 goto xia; } if(bc==1) { d2=m_edit; if(d1==d2){ static1->SetWindowText("输入成功 请选择文件"); GetDlgItem(IDC_BUTTON1)->EnableWindow(false); //按钮1变灰 m_edit = _T(""); GetDlgItem(IDC_BUTTON2)->EnableWindow(true); //激活按钮2 // MessageBox(d1); } if(d1!=d2){ //重新输入 d1="";d2=""; m_edit = _T(""); static1->SetWindowText("请输入密码"); bc=0; SetFocus(); goto shang; } goto xia; } }//if(m_edit != "") xia: ; UpdateData(FALSE); //结束刷新 //以上是密码输入 //以下是密码加工 int nn=d1.GetLength(); for(int i=0;i<nn;i++) { strcpy(mi,d1); } for(i=0;i<nn;i++) { zz=zz+mi[i]; } } //选择文件 void CJiamiDlg::OnButton2() { int i; CString str; POSITION pos; CString strFileName; GetDlgItem(IDC_BUTTON2)->EnableWindow(false); //按钮2变灰 CFileDialog m_ldFile(TRUE,_T("*.*"),_T("*.*"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT,_T("(*.*)|*.*|")); if((d1=="")||(bc==0)) OnButton5(); //如果没有前期输入则退出 else{ if(m_ldFile.DoModal() == IDOK) { pos = m_ldFile.GetStartPosition(); i=0; while(pos != NULL) { strFileName = m_ldFile.GetNextPathName(pos); strcpy(name[i],strFileName); //将选择文件名放在name i++; } wjs=i; }//if }//else GetDlgItem(IDC_BUTTON3)->EnableWindow(true); //激活按钮3 加密 GetDlgItem(IDC_BUTTON4)->EnableWindow(true); //激活按钮4 解密 GetDlgItem(IDC_BUTTON3)->SetFocus( );//获得焦点 CStatic* static1=(CStatic*)GetDlgItem(IDC_STATIC1);//显示预备 static1->SetWindowText("请选择加密或解密"); } //退出 void CJiamiDlg::OnButton5() { OnOK(); } //加密解密函数 调用方式 HanShu(文件名,控制变量bz) 加密bz=1 解密bz=-1 void HanShu(char *filename,int bz) { FILE *f; int Length; int i; unsigned char ch; int n1=0; unsigned char *wenjian; if((f=fopen(filename,"rb+"))==NULL) {exit(0);} Length=filelength(fileno(f)); //得到文件长度 fclose(f); //分配内存 wenjian=new unsigned char[Length+1]; //文件容器 if((f=fopen(filename,"rb+"))==NULL) //调入被处理文件 {exit(0);} fseek(f,0,0); fread(wenjian,Length,1,f); fclose(f); srand(zz%1234+31*wjs); //随机函数种子 //wjs的加入使不同的文件使用不同的种子 Beep(1000,20); for(i=0;i<Length;i++) { wenjian[i]=wenjian[i]+bz*(rand()+rand()/7+i/127); //处理文件加密或解密 } if((f=fopen(filename,"w+"))==NULL) //删除文件 fclose(f); if((f=fopen(filename,"rb+"))==NULL) //存文件 {exit(0);} fseek(f,0,0); fwrite(wenjian,Length,1,f); fclose(f); delete [] wenjian; } void CJiamiDlg::OnButton3() { int attr; for (int I = 0; I < wjs; I ++) { //取文件属性 attr = GetFileAttributes(name[I]); //设置为可处理的属性 SetFileAttributes(name[I],FILE_ATTRIBUTE_ARCHIVE); //加密处理 HanShu(name[I],1); SetWindowText("-----<加密结束>-----"); //设置为原属性 SetFileAttributes(name[I],attr); } for(int i=0;i<1000;i=i+200) { Beep(1000-i,1); } } void CJiamiDlg::OnButton4() { int attr; for (int I = 0; I < wjs; I ++) { attr = GetFileAttributes(name[I]); SetFileAttributes(name[I],FILE_ATTRIBUTE_ARCHIVE); //解密处理 HanShu(name[I],-1); SetWindowText("-----<解密结束>-----"); SetFileAttributes(name[I],attr); } for(int i=0;i<1000;i=i+200) { Beep(1000-i,1); } } |
|
文件安全加密
大不必担心,如果能从密文得到一丁点信息也是见鬼了。楼上列出些乱码和图片什么意思?如能破解密文希望展示一下,希望能创造奇迹!不用拿图形来比划,哪怕你能解出一个字节也是奇迹。
最后于 2020-8-22 10:49
被sjdkx编辑
,原因: 丰富内容
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值