cuốn sách gpt4 ai đã làm

Lỗ hổng CipherSaber

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 01:09:08 26 4
mua khóa gpt4 Nike

Vì vậy tôi đã triển khaimật mã-1 .it gần như hoạt động và tôi có thể giải mã cstest1.cs1. Nhưng tôi không thể làm cho cstest2.cs1 hoạt động bình thường.

Đầu ra là:

Tu chính án thứ tư của Hiến pháp Liên bang ▀Stat→s của Hoa Kỳ

"Quyền của người dân được đảm bảo an toàn về thân thể, nhà cửa, giấy tờ và
hiệu ứng, chống lại những tìm kiếm không hợp lý→e an╚A)┤Xx¹▼☻dcðÈ_#0Uc.?n~J¿ |,lómsó£k░7╠▄
íuVRÊ ồ
õ&æÄ[5&Þ½╔s╦Nå1En♂☻♫ôzÓ9»Á╝ĐÅ├ðzÝÎòeØ%W ¶]¤▲`Oá╗e_Ú)╣ó0↑ï^☻P>ù♂¥¯▄‗♦£mUzMצվ~8å
ì½³░Ùã♠,H-tßJ!³*²RóÅ

Vì vậy, phải có điều gì đó sai sót trong quá trình khởi tạo trạng thái của tôi. Điều kỳ lạ là tôi có thể mã hóa và giải mã các văn bản dài mà không gặp vấn đề gì nên lỗi này là đối xứng.

Tôi đã triển khai mật mã RC4 dưới dạng thuật toán byte đơn được gửi lại như bạn thấy trong RC4.c nhìn thấy trong. .

Trạng thái được lưu trữ trong cấu trúc RC4_state:

typedef không dấu char rc4_byte;

cấu trúc RC4_state_
{
rc4_byte tôi;
rc4_byte j;
trạng thái RC4_byte[256];
};
typedef cấu trúc rc4_state_ rc4_state;

Trạng thái được khởi tạo thànhRC4_init :

void rc4_init(trạng thái rc4_state*, khóa rc4_byte*, khóa size_t)
{
rc4_byte i, j, n;

tôi = 0;
do
{
trạng thái->trạng thái[i] = i;
i++;
}
trong khi (i != 255);

j = 0;
tôi = 0;
do
{
n = i % keylen;
j += state->state[i] + key[n];
swap(&state->state[i], &state->state[j]);
i++;
}
trong khi (i != 255);

trạng thái->i = 0;
trạng thái->j = 0;
}

Việc mã hóa/giải mã thực sự nằm trongRC4Đã hoàn thành vào:

rc4_byte rc4(trạng thái RC4_state*, rc4_byte in)
{
rc4_byte n;

trạng thái->i++;
state->j += state->state[state->i];
swap(&state->state[state->i], &state->state[state->j]);
n = state->state[state->i] + state->state[state->j];

trở về ^ trạng thái->trạng thái [n];
}

Để hoàn thiện, trao đổi:

trao đổi void(rc4_byte* a, rc4_byte* b)
{
rc4_byte t = *a;
*a = *b;
*b = t;
}

Tôi đã vật lộn với vấn đề này trong hơn hai ngày... Trạng thái, ít nhất là khóa "asdfg" là chính xác. Mọi trợ giúp đều sẽ tuyệt vời.

Toàn bộ nội dung có thể được tìm thấy trong kho lưu trữ github của tôi:https://github.com/rioki/ciphersaber/

câu trả lời hay nhất

Tôi tình cờ thấy câu hỏi của bạn khi tìm kiếm trực tuyến, nhưng vì bạn chưa cập nhật mã của bạn tại GitHubTuy nhiên, tôi đoán bạn vẫn có thể tự hỏi vấn đề là gì.

Trong mã này:

tôi = 0;
do
{
trạng thái->trạng thái[i] = i;
i++;
}
trong khi (i != 255);

Sau khi lặp lại vòng lặp này 255 lần,Tôi Giá trị là 255 và vòng lặp kết thúc. Kết quả là byte cuối cùng của bộ đệm trạng thái chưa được khởi tạo.

Điều này rất dễ khắc phục. Chỉ cần thay đổi trong khi (i != 255); Thay đổi thành trong khi(i);.

Về lỗ hổng CipherSaber, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/16603562/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress