Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
C++

Szyfrowanie i Deszyfrowanie tekstu

C++

  • Zamknięty Temat jest zamknięty
3 odpowiedzi w tym temacie

#1 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 587
Wszechwiedzący

  • Postów:2013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 17.02.2010 16:51

Przedstawiam wam 2 Funkcje :

1. Szyfrującą :

void szyfruj(char *tekst, int *klucz)
{
  int iPrzes = 0;
  for (int i=0; tekst[i] != NULL; i++)
  {
      tekst[i] = ( tekst[i] + klucz[iPrzes] );
      iPrzes ++;
      if(iPrzes == sizeof(klucz)) iPrzes = 0;
  }                                           
}

Przyjmuje 2 Argumenty:
- tekst typu char wskazuje na podaną tablicę, z wyrażeniem do zaszyfrowania, tego samego typu .
- klucz typu int wskazuje na podaną tablicę, klucza co najmniej 2-komórkową, tego samego typu .

2. Deszyfrująca :

void deszyfruj(char *tekst,int *klucz)                       
{
  int iPrzes = 0;
  for (int i=0; tekst[i] != NULL; i++)
  {
    tekst[i] = ( tekst[i] - klucz[iPrzes] );
    iPrzes ++;
    if(iPrzes == sizeof(klucz)) iPrzes = 0;
  }
  
}

Przyjmuje 2 Argumenty:
- tekst typu char wskazuje na podaną tablicę, z wyrażeniem do odszyfrowania, tego samego typu .
- klucz typu int wskazuje na podaną tablicę, klucza co najmniej 2-komórkową, tego samego typu .

Przykład:
#include <iostream>

void szyfruj(char *tekst,int *klucz)
{
  int iPrzes = 0;
  for (int i=0; tekst[i] != NULL; i++)
  {
      tekst[i] = ( tekst[i] + klucz[iPrzes] );
      iPrzes ++;
      if(iPrzes == sizeof(klucz)) iPrzes = 0;
  }                                           
} 
void deszyfruj(char *tekst,int *klucz)                       
{
  int iPrzes = 0;
  for (int i=0; tekst[i] != NULL; i++)
  {
    tekst[i] = ( tekst[i] - klucz[iPrzes] );
    iPrzes ++;
    if(iPrzes == sizeof(klucz)) iPrzes = 0;
  }
  
} 

int main(){
	
    char test[] = "Knopers is good, but Miczu is better.";
    int iKlucz[3] = { 12, 13, 14 } ;
	std::cout << test << "\n" ;
    szyfruj(test, iKlucz);
    std::cout << test << "\n" ;
    deszyfruj(test, iKlucz);
    std::cout << test << "\n" ;
    system("pause");
}

Tu natomiast są funkcje z gotowymi Kluczami (w sumie kluczem ;) ):

1. Szyfrująca :

void szyfruj(char *tekst)
{
  int iPrzes = 0, iOile[12] = { 12, 1, 13, 2, 11, 4, 10, 3, 9, 10, 6, 8 };
  for (int i=0; tekst[i] != NULL; i++)
  {
      tekst[i] = ( tekst[i] + iOile[iPrzes] );
      iPrzes ++;
      if(iPrzes == 12) iPrzes = 0;
  }                                           
}

Przyjmuje 1 Argument:
- tekst typu char wskazuje na podaną tablicę, z wyrażeniem do zaszyfrowania, tego samego typu .

2.Deszyfrująca :

void deszyfruj(char *tekst)                       
{
  int iPrzes = 0, iOile[12] = { 12, 1, 13, 2, 11, 4, 10, 3, 9, 10, 6, 8 };
  for (int i=0; tekst[i] != NULL; i++)
  {
    tekst[i] = ( tekst[i] - iOile[iPrzes] );
    iPrzes ++;
    if(iPrzes == 12) iPrzes = 0;
  }
  
}

Przyjmuje 1 Argument:
- tekst typu char wskazuje na podaną tablicę, z wyrażeniem do odszyfrowania, tego samego typu .

Przykład :

#include <iostream>

void szyfruj(char *tekst)
{
  int iPrzes = 0, iOile[12] = { 12, 1, 13, 2, 11, 4, 10, 3, 9, 10, 6, 8 };
  for (int i=0; tekst[i] != NULL; i++)
  {
      tekst[i] = ( tekst[i] + iOile[iPrzes] );
      iPrzes ++;
      if(iPrzes == 12) iPrzes = 0;
  }                                           
} 
void deszyfruj(char *tekst)                       
{
  int iPrzes = 0, iOile[12] = { 12, 1, 13, 2, 11, 4, 10, 3, 9, 10, 6, 8 };
  for (int i=0; tekst[i] != NULL; i++)
  {
    tekst[i] = ( tekst[i] - iOile[iPrzes] );
    iPrzes ++;
    if(iPrzes == 12) iPrzes = 0;
  }
  
} 
int main(){
    char test[20] = "Knopers is good, but Miczu is better." ;
    std::cout << test << "\n" ;
    szyfruj(test);
    std::cout << test << "\n" ;
    deszyfruj(test);
    std::cout << test << "\n" ;
    system("pause");
}
Dziękuje Miczowi za podsunięcie pomysłu
Zakaz kopiowania na inne fora bez mojej zgody .

Jeśli chcecie mnie skrytykować , przyjmę nawet najgorszy komentarz z godnością (ale myślę że nie będzie aż tak źle ;) )

  • +
  • -
  • 0

#2 Miczu

    Godlike

  • Przyjaciel

Reputacja: 646
Wszechmogący

  • Postów:2862
Offline

Napisano 17.02.2010 16:56

Copyright by Knopers


To znaczy ze nie wolno tego uzywac? :F

// Może być :P
//Knopers

  • +
  • -
  • 0

#3 kur3k

    Założyciel forum ;)

  • Przyjaciel

Reputacja: 28
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 17.03.2010 23:09

"Knopers is good, but Miczu is better."
Miczu noob, Konopers good :D
  • +
  • -
  • 0

#4 kur3k

    Założyciel forum ;)

  • Przyjaciel

Reputacja: 28
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 21.05.2010 22:40

# -*- coding: utf-8 -*-

# Szyfrowanie/deszyfrowanie tekstu

szyfr = { "a":"!", "b":"@", "c":"#", "d":"$", "e":"%", "f":"^", "g":"&",
"h":"*", "i":"(", "j":")", "k":"-", "l":"=", "m":"+", "n":"_",
"o":"/", "p":"?", "r":">", "s":".", "t":"<", "u":",", "v":";",
"w":":", "y":"{", "z":"}" }

zdanie = raw_input()
zdanie.lower()

def szyfruj(zdanie):
global zero
zero = ""

for i in zdanie:
for j in szyfr.keys():
if i == j:
zero += szyfr[j]
else:
continue

return zero

def deszyfruj(zdanie):
jeden = ""

for i in zero:s
for j in szyfr.keys():
if i == szyfr[j]:
jeden += j
else:
continue

return jeden


print szyfruj(zdanie), "\n", deszyfruj(zdanie)
A tak w Python, wersja prosta ( nie uwzględnienia spacji, dużych liter )
  • +
  • -
  • 1





Również z jednym lub większą ilością słów kluczowych: C++

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych