sha-1

2021. 5. 12. 09:37암호학/C언어

#include
#include <string.h>
// strlen 쓰려고

using namespace std;
void text_move(char *, int);
int count1;
void char_to_int(char text);
void boohowha(int a);
int binary_text[128];

int main()
{
count1 = 0;
/*
char text[128];

cout << "암호화할 코드를 입력하세요 : ";
cin >> text;
cout << "평문 : " << text << endl;

for (int i = 0; i < strlen(text); i++)
{
    cout << i << " : " << (int)text[i] << endl;
}
// 문자열 부호화(문자열 -> 10진수)



// 10진수 -> 2진수
*/

char text[100];

cout << "암호화할 코드를 입력하세요 : ";
cin >> text;
//cout << (int)'@' << endl;
//boohowha();


text_move(text, strlen(text));

cout << "길이 : " << strlen(text) << endl;
cout << "삽입 결과 : ";
for (int i = 0; i < strlen(text) * 8; i++) {
    // 텍스트 길이 x 글자당 2진수 갯수(8개)
    cout << binary_text[i];
}

return 0;

}

void text_move(char* text,int a)
{
for (int i = 0; i < a; i++)
// 한글자씩 부호화하기 위해 글자단위로 나눔
{
cout << text[i];
char_to_int(text[i]);
cout << endl;
}
}

void char_to_int(char text)
// 부호화하기위해 char형을 아스키코드로 변환하기 위해 int형으로 변환
{
int start = (int)text;
boohowha(start);
/*
cout << "값 : " << a[0] << endl;

for (int i = 0; i < 8 ; i++)
{
    cout << "값 : " << *(a+1) << endl;
}
*/

}

void boohowha(int a)
// 부호화 // 이진연산 자체가 역순으로 나오기때문에 배열에 저장할 때도 역순으로 저장한다. 역순의 역순 -> 정순
{
int remainder;

int c[8] = { 0, };

int i = 7;

while (a != 1)
{

    remainder = a % 2;
    a = a / 2;
    c[i] = remainder;
    //cout << c[i] << endl;
    i--;

    if (a == 1)
    {
        c[i] = 1;
    }
}

for (i = 0; i < 8; i++)
{
    binary_text[count1] = c[i];
    count1++;
}

}

'암호학 > C언어' 카테고리의 다른 글

sha-1 알고리즘 코딩  (0) 2021.05.14
sha-1  (0) 2021.05.13
Caesar Cipher(시저 암호) for C언어  (0) 2020.11.30
C언어 / 입력한 문자 거꾸로 출력  (0) 2020.11.29
C언어 / scanf 기본 출력  (0) 2020.11.29