Rijndael 용법, 데 이 터 를 어떻게 채 웁 니까?
요 며칠 동안 고객 이 데이터 암호 화 를 요 구 했 습 니 다. 알고리즘 은 Rijndael 입 니 다. 그래서 인터넷 에서 다른 사람 이 쓴 알고리즘 코드 를 찾 아 프로젝트 에 통합 시 켰 습 니 다.구체 적 으로 어떻게 찾 는 지 는 여러분 이 직접 찾 아 보 세 요. 키 워드 는 Rijndael c + + 입 니 다.다운로드 한 후에 남 의 예 에서 암호 화 해 야 할 데 이 터 는 모두 16 바이트 의 정수 배 라 는 것 을 발견 했다.그러나 우리 가 암호 화 해 야 할 것 이 어디 가 이렇게 좋 은 지, 마침 16 의 정수 배 이다.나중에 다른 자 료 를 찾 아서 16 정수 배가 안 되 는 부분 은 데 이 터 를 채 워 야 한다 고 했 습 니 다.나 는 0 을 채 우 는 것 을 테스트 해 보 았 는데, 결 과 는 C \ # 의 암호 화 결과 와 다 르 고 답답 해 죽 을 지경 이 었 다.이 럴 때 는 C \ # 를 하 는 친구 들 이 정말 부럽다. 모든 것 을 다 포장 해 놓 았 으 니 스스로 코드 를 찾 지 않 아 도 된다.
한 번 에 한 번 시험 하면 반드시 결 과 를 맞 출 수 있 지만, 효율 이 너무 낮은 것 아 닙 니까?그래서 나 는 C \ # 암호 화 된 결 과 를 꺼 내 서 CRijndael 로 복호화 하 다가 데 이 터 를 어떻게 채 워 야 하 는 지 알 게 되 었 다.말 이 많 지 않 습 니 다. 코드 는 다음 과 같 습 니 다. 다른 친구 들 에 게 편 의 를 가 져 다 주 고 N 년 동안 처음으로 다른 우리 형제 에 게 보답 할 수 있 기 를 바 랍 니 다.
강조 하 자 면 키 는 최대 32 바이트, IV 는 최대 16 바이트, MYKEY 와 MYIV 가 너무 길 면 운행 이 통과 되 지 않 아서 코드 가 이것 에 대해 제한 을 두 었 다.
//Test.cpp
#include "Rijndael.h"
#include
#include
using namespace std;
#define DEFAULT_BLOCK_SIZE 16
#define MAX_KEY_LEN 32
#define MAX_IV_LEN 16
#define MY_KEY "UFCy76*h%(HilJ$lhj!y6&(*jkP87jH7"
#define MY_IV "hWk7&!hg4ui%$hjk"
//Function to convert unsigned char to string of length 2
void Char2Hex(unsigned char ch, char* szHex)
{
unsigned char byte[2];
byte[0] = ch/16;
byte[1] = ch%16;
for(int i=0; i<2; i++)
{
if(byte[i] >= 0 && byte[i] <= 9)
szHex[i] = '0' + byte[i];
else
szHex[i] = 'A' + byte[i] - 10;
}
szHex[2] = 0;
}
//Function to convert string of length 2 to unsigned char
void Hex2Char(char const* szHex, unsigned char& rch)
{
rch = 0;
for(int i=0; i<2; i++)
{
if(*(szHex + i) >='0' && *(szHex + i) <= '9')
rch = (rch << 4) + (*(szHex + i) - '0');
else if(*(szHex + i) >='A' && *(szHex + i) <= 'F')
rch = (rch << 4) + (*(szHex + i) - 'A' + 10);
else
break;
}
}
//Function to convert string of unsigned chars to string of chars
void CharStr2HexStr(unsigned char const* pucCharStr, char* pszHexStr, int iSize)
{
int i;
char szHex[3];
pszHexStr[0] = 0;
for(i=0; i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.