[ glupi @ 23.12.2001. 20:27 ] @
Evo napravio sam jedan jednostavan crypting program. Uzima txt pretvorit savko slovo u ascii vrijednost te mu pribroji ascii vrijednost ključa.
#include <iostream>
#include <fstream>
using namespace std;

int main()
{

int a=0;
char a1[10];
char a2[10];
char a3[10];
int b;
cout << "Crypto..." << endl;
cout << "q for quit..."<< endl;
cout << "Crypt(1) or Decrypt(2)" << endl;
cin >> b;
if (b == 'q')
{
cout << "fUcK yAA <--><-->!!" << endl;

return 1;
}
if (b==1)
{
cout << "Fajl koji kriptujem-->";
cin >> a1;
cout << "Key-->";
cin >> a3;
cout << "Izlaz-->";
cin >> a2;
}
else if(b==2)
{
cout << "Fajl koji de_kriptujem-->";
cin >> a1;
cout << "Key-->";
cin >> a3;
cout << "Izlaz-->";
cin >> a2;
}


char ch;
ifstream cip(a3);
while(cip.get(ch))
{
a += (int) ch;
}
cip.close();

if (b == 1)
{
char ch;
ifstream cip(a1);
ofstream pis(a2);

cout << "Ovo je Cryptografski program made by: glupi;;;--))" << endl;

while(cip.get(ch))
{
pis << ((int) ch + a) << " ";
}

cip.close();
pis.close();
}

if(b == 2)
{
int ch;
ifstream cip(a1);
ofstream pis(a2);

cout << "Ovo je DeCryptografski program made by: glupi;;;--))" << endl;

while(cip>>ch)
{
int b=0;
b = ch - a;
pis << (char) b;

}

cip.close();
pis.close();
}


return 0;
}

PS: Djelovi koda su mozda glupi ali eto kako sam znao tako napravio...
[ madman @ 23.12.2001. 21:31 ] @
Sve je to lepo, ali....
ovde ne bi trebalo da se hvalimo koliko smo pametni, vec da resavamo probleme?!?
[ Reljam @ 23.12.2001. 22:14 ] @
Citat:
madman:
Sve je to lepo, ali....
ovde ne bi trebalo da se hvalimo koliko smo pametni, vec da resavamo probleme?!?

Pa ne znam, meni to cin i cout nikad nisu bili jasni. Svaka cast coveku za to ako nizasta drugo...
[ Dusan Marjanovic @ 23.12.2001. 22:41 ] @
Citat:
Reljam:
Pa ne znam, meni to cin i cout nikad nisu bili jasni. Svaka cast coveku za to ako nizasta drugo...

??? nadam se da se salis :)
[ Mikky @ 24.12.2001. 22:20 ] @
pa mozda je mislio na one delove tpa
cip.get()
ifstream
ofstream

ni meni to nikad nije bilo jasno .. mada nikad ni nisam pokusavao da ukapiram :)
[ Reljam @ 25.12.2001. 07:58 ] @
Ne salim se. Ozbiljan sam. Nikad nisam presao na cin/cout sa printf-a. Najvise mi smeta sto streamovi "bodu oci" u kodu, izgledaju potpuno drugacije od ostatka sorsa. A drugo je stvar navike.
[ glupi @ 25.12.2001. 13:14 ] @
Cilj ovog programa nije da bi se pravio pametan kako neki misle vec da bi pokazao neki jednostavan cryptografski program posto sam na c++ forumu nasao jedno pitanje bas za primjer ovavog programa. Ovaj program nije uopce pametan vec je glup ali je ipak poceta. Zanima me jer neko ima ideju za neki malo bolji algoritam??
[ anatogen @ 27.12.2001. 11:45 ] @
Meni isto nije jasno zasto neko za ovakve stvari upotrebljava C++ a i za mnoge druge za koje je C prosto svoren....
[ skajfes @ 01.05.2003. 00:38 ] @
možda da probaš xor sa ključem ili nešto slično!

Evo kako sam ja to izveo u perlu sa xor:


#!/usr/bin/perl
use strict;

print "Enkripcija/Dekripcija tekstualnih fileova\n";
if (@ARGV) {
$_ = $ARGV[0];
} else {
print "input > ";
$_ = <STDIN>;
}
chomp $_;


if (-e and -f) {
open INFILE, $_ or die "$_: $!";
my $nastavak;
if (/\.enc$/) {
$nastavak = "";
/(.+)\.enc/;
$_ = $1;
} else {
$nastavak = ".enc";
}
open OUTFILE, ">$_$nastavak" or die "$_.enc: $!";
} else {
print "Takav file ne postoji!\n";
exit;
}

print "key > ";
my $key = <STDIN>;
chomp $key;

my $i;
until (eof INFILE) {
read (INFILE, my $byte, 1);
my $keybyte = substr($key, $i++, 1);
if ($i >= length($key)) {
$i = 0;
}
my $code = &XOR(&BIN($byte), &BIN($keybyte));
print OUTFILE chr(&DEC($code));

}
close INFILE;
close OUTFILE;

sub BIN: {
my $broj = ord($_[0]);
my @digits;
while ($broj >=1) {
if ($broj/2 == int($broj/2)) {
push @digits, '0';
} else {
push @digits, '1';
}
$broj = int($broj/2); #/
}
my $digits = join "", reverse @digits;
return $digits;
}

sub DEC {
my $n = $_[0];
my @n = reverse split //, $n;
my $a = 0;
foreach (0..$#n) {
$a += $n[$_]*(2**$_);
}
return $a;
}

sub XOR: {
(my $a, my $b) = @_;
$a = substr("00000000$a",-8,8);
$b = substr("00000000$b",-8,8);
my $rez = '';
for (0..7) {
my $a_byte;
my $b_byte;
if (int(substr ($a, $_, 1)) == 1) {
$a_byte = 1;
} else {
$a_byte = 0;
}
if (int(substr ($b, $_, 1)) == 1) {
$b_byte = 1;
} else {
$b_byte = 0;
}
$rez .= ($a_byte xor $b_byte) ? 1:0;
}
return $rez;
}


samo što kad sifriram neki file koji nije .txt(ili neki drugi čisto tekstualni file) dobijem s***** poslje desifriranja!
[ glupi @ 01.05.2003. 01:00 ] @
;) ono je radjeno prije jako mnogo vremena i vise je bilo kao neka ideja nego svrsi shodno. Ovo sto si predlozio je cesto koristen nacin. Sto se tice neradnje programa ne znam bas perl. Jedini problem je sto je cesto moguce lagano dobit password ako samo xoramo.