در این پروژه می خواهم حروف الفبای انگلیسی رو به کاراکتر های مختلف در بیاریم مثل :
A = /-\ و بعد بتوانیم به حالت اول برگردانیم!
دوستانی که مایل به همکاری در این پروژه هستن لطفا اعلام آمادگی کنن تا با هم شروع کنیم
Printable View
در این پروژه می خواهم حروف الفبای انگلیسی رو به کاراکتر های مختلف در بیاریم مثل :
A = /-\ و بعد بتوانیم به حالت اول برگردانیم!
دوستانی که مایل به همکاری در این پروژه هستن لطفا اعلام آمادگی کنن تا با هم شروع کنیم
فكر نميكنم اين قدر سخت باشه كه بخوايد واسه حلش تيم درست كنيد:31:.
به هر حال من كه بدم نمياد ,البته اگه اين امتحان ها بذارن!
عزیزم میخوایم در حد professional این کارو انجام بدیم! اون مثال بالایی که زدم برای درک بهتر شما بود
من فقط تو قسمت decode به کمک نیاز دارم!
شما هم اگر نمی خواید کمک کنید طعنه نزنید:11:
قسمت encode برنامه رو نوشتم:::
لطفا اگر راه بهتری به ذهنتان میرسد(تصحیح دستورات، روش های جدید و ...) کد ها را ویرایش کنید و در تاپیک قرار دهید
این stdafx.h
اینم main:کد:کد:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#include "targetver.h"
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <fstream>
#include <string>
struct alpha{
std::string A,a,B,b,C,c,D,d,E,e,F,f,G,
g,H,h,I,i,J,j,K,k,L,l,M,m,
N,n,O,o,P,p,Q,q,R,r,S,s,T,
t,U,u,V,v,W,w,X,x,Y,y,Z,z;
};
// TODO: reference additional headers your program requires here
کد:
// doc-safe.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
using namespace std;
ofstream fao;
ifstream fai;
alpha charMap;
void intialize();
void encode();
int _tmain(int argc, _TCHAR* argv[])
{
if(argc = 3)
{
fao.open(argv[2]);
fai.open(argv[1]);
if(!fao.good() && !fai.good())
{
return -10000;
}
intialize();
encode();
}
return 0;
}
void intialize()
{
charMap.A = "21"; charMap.a = "~1"; charMap.B = "25"; charMap.b = "~5"; charMap.C = "2@"; charMap.c = "~@";
charMap.D = "2%"; charMap.d = "~9"; charMap.E = "2!"; charMap.e = "~!"; charMap.F = "!@"; charMap.f = "!~";
charMap.G = "@\\"; charMap.g = "@/"; charMap.H = "!!"; charMap.h = "!\\"; charMap.I = "!?"; charMap.i = "-!";
charMap.J = "!8"; charMap.j = "~8"; charMap.K = "(\\"; charMap.k = "~\\"; charMap.L = "26"; charMap.l = "27";
charMap.M = "*5"; charMap.m = "1%"; charMap.N = "+%"; charMap.n = "-5"; charMap.O = "(?"; charMap.o = "+)";
charMap.P = "'_"; charMap.p = "/\\"; charMap.Q = "(~"; charMap.q = ",/"; charMap.R = "*,"; charMap.r = "/6";
charMap.S = "0?"; charMap.s = "%0"; charMap.T = "!,"; charMap.t = "+,"; charMap.U = "-="; charMap.u = "+-";
charMap.V = "8_"; charMap.v = "*+"; charMap.W = "-6"; charMap.w = "76"; charMap.X = "/8"; charMap.x = "88";
charMap.Y = ",."; charMap.y = ".."; charMap.Z = "/7"; charMap.z = "86";
}
void encode()
{
char ch = NULL;
while((ch = fai.get()) != EOF)
{
switch(ch)
{
case 'A':fao<<charMap.A;break; case 'a':fao<<charMap.a;break; case 'B':fao<<charMap.B;break; case 'b':fao<<charMap.b;break;
case 'C':fao<<charMap.C;break; case 'c':fao<<charMap.c;break; case 'D':fao<<charMap.D;break; case 'd':fao<<charMap.d;break;
case 'E':fao<<charMap.E;break; case 'e':fao<<charMap.e;break; case 'F':fao<<charMap.F;break; case 'f':fao<<charMap.f;break;
case 'G':fao<<charMap.G;break; case 'g':fao<<charMap.g;break; case 'H':fao<<charMap.H;break; case 'h':fao<<charMap.h;break;
case 'I':fao<<charMap.I;break; case 'i':fao<<charMap.i;break; case 'J':fao<<charMap.J;break; case 'j':fao<<charMap.j;break;
case 'K':fao<<charMap.K;break; case 'k':fao<<charMap.k;break; case 'L':fao<<charMap.L;break; case 'l':fao<<charMap.l;break;
case 'M':fao<<charMap.M;break; case 'm':fao<<charMap.m;break; case 'N':fao<<charMap.N;break; case 'n':fao<<charMap.n;break;
case 'O':fao<<charMap.O;break; case 'o':fao<<charMap.o;break; case 'P':fao<<charMap.P;break; case 'p':fao<<charMap.p;break;
case 'Q':fao<<charMap.Q;break; case 'q':fao<<charMap.q;break; case 'R':fao<<charMap.R;break; case 'r':fao<<charMap.r;break;
case 'S':fao<<charMap.S;break; case 's':fao<<charMap.s;break; case 'T':fao<<charMap.T;break; case 't':fao<<charMap.t;break;
case 'U':fao<<charMap.U;break; case 'u':fao<<charMap.u;break; case 'V':fao<<charMap.V;break; case 'v':fao<<charMap.v;break;
case 'W':fao<<charMap.W;break; case 'w':fao<<charMap.w;break; case 'X':fao<<charMap.X;break; case 'x':fao<<charMap.x;break;
case 'Y':fao<<charMap.Y;break; case 'y':fao<<charMap.y;break; case 'Z':fao<<charMap.Z;break; case 'z':fao<<charMap.z;break;
default: fao.put(ch);break;
}
}
}
هدف من از نوشتن این برنامه این است که در آینده برنامه ای قوی برای Encrypt کردن اطلاعات طوری که فقط بشود با این برنامه Decrypt کرد بنویسم
امیدوارم که از کد ها فهمیده باشید که هدف کد گذاری -> ذخیره -> دیکود کردن -> ذخیره اطلاعات است ، همچینا هم آسون نیست:13:
یه سوال ACM بود در این رابطه . برای Encrypt کردن یه متنی . روش Encrypt کردنش هم خیلی جالب بود . من برنامه شو نوشتم .
این روی سوال هست . البته تو سوال قراره ما Decrypt بکنیم .
نقل قول:
استاد دست گلتان درد نکند، اما آیا روش من بهتر نیست؟:11:
قسمت دیکود رو هم نوشتم برنامه رو بعدا میذارم تا هر باگی داره بگید
قسمت دیکود:::
کد:void decode()
{
char ch = NULL;
char ci = NULL;
string str;
string strt;
string strx;
int pos = 0;
bool f = false;
while((ch = fai.get()) != EOF)
{
str = ch;
strx = fai.get();
str += strx;
strt = compare(str);
if(strt != str)
{
fao.write(strt.c_str(),1);
str.clear();
f = true;
}
if( f==false ){
pos = fai.tellg();
fai.seekg(pos-2);
fao.put(fai.get());
cout<<fai.tellg();
fai.seekg(pos - 1);
}
str.clear();
f = false;
}
}
string compare( string in )
{
if(in == charMap.A)
{
return "A";
}
if(in == charMap.a)
{
return "a";
}
if(in == charMap.B)
{
return "B";
}
if(in == charMap.b)
{
return "b";
}
if(in == charMap.C)
{
return "C";
}
if(in == charMap.c)
{
return "c";
}
if(in == charMap.D)
{
return "D";
}
if(in == charMap.d)
{
return "d";
}
if(in == charMap.E)
{
return "E";
}
if(in == charMap.e)
{
return "e";
}
if(in == charMap.F)
{
return "F";
}
if(in == charMap.f)
{
return "f";
}
if(in == charMap.G)
{
return "G";
}
if(in == charMap.g)
{
return "g";
}
if(in == charMap.H)
{
return "H";
}
if(in == charMap.h)
{
return "h";
}
if(in == charMap.I)
{
return "I";
}
if(in == charMap.i)
{
return "i";
}
if(in == charMap.J)
{
return "J";
}
if(in == charMap.j)
{
return "j";
}
if(in == charMap.K)
{
return "K";
}
if(in == charMap.k)
{
return "k";
}
if(in == charMap.L)
{
return "L";
}
if(in == charMap.l)
{
return "l";
}
if(in == charMap.M)
{
return "M";
}
if(in == charMap.m)
{
return "m";
}
if(in == charMap.N)
{
return "N";
}
if(in == charMap.n)
{
return "n";
}
if(in == charMap.O)
{
return "O";
}
if(in == charMap.o)
{
return "o";
}
if(in == charMap.P)
{
return "P";
}
if(in == charMap.p)
{
return "p";
}
if(in == charMap.Q)
{
return "Q";
}
if(in == charMap.q)
{
return "q";
}
if(in == charMap.R)
{
return "R";
}
if(in == charMap.r)
{
return "r";
}
if(in == charMap.S)
{
return "S";
}
if(in == charMap.s)
{
return "s";
}
if(in == charMap.T)
{
return "T";
}
if(in == charMap.t)
{
return "t";
}
if(in == charMap.U)
{
return "U";
}
if(in == charMap.u)
{
return "u";
}
if(in == charMap.V)
{
return "V";
}
if(in == charMap.v)
{
return "v";
}
if(in == charMap.W)
{
return "W";
}
if(in == charMap.w)
{
return "w";
}
if(in == charMap.X)
{
return "X";
}
if(in == charMap.x)
{
return "x";
}
if(in == charMap.Y)
{
return "Y";
}
if(in == charMap.y)
{
return "y";
}
if(in == charMap.Z)
{
return "Z";
}
if(in == charMap.z)
{
return "z";
}
return in;
}
اینم برنامه:
کد:http://rapidshare.com/files/326897432/doc-safe.exe.html
من نگفتم کدومش بهتره . فقط یه نظر دادم .نقل قول:
ولی احتمال لو رفتن این گونه کدگذاری(همون ACM) خیلی کمتره . در مورد شما علایم ثابت هستن . ولی در اون یکی از همون علایم حروف انگلیسی استفاده میشه که برای خواننده در اولین نگاه بی معنی میاد و شاید به فکرش نرسه که این یه معنی هایی داره .
حالا بی خیال! برنامرو تست کنین و مشکلاتشو بگین:31:
من تا حالا اینارو کشفیدم : درج بایت -1 ، نزدن بعضی از پرانتزا