Բովանդակություն:

Այս PNG- ը գաղտնի կուպե է. 4 քայլ
Այս PNG- ը գաղտնի կուպե է. 4 քայլ

Video: Այս PNG- ը գաղտնի կուպե է. 4 քայլ

Video: Այս PNG- ը գաղտնի կուպե է. 4 քայլ
Video: Crypto Pirates Weekly News - 12th June 2022 2024, Նոյեմբեր
Anonim
Այս- ը գաղտնի կուպե է
Այս- ը գաղտնի կուպե է
Այս- ը գաղտնի կուպե է
Այս- ը գաղտնի կուպե է

Ձեր մարտահրավերը, սիրելի ընթերցող, այն է, որ հասկանաք, թե ինչ հաղորդագրություն է թաքնված output-p.webp

Երկու նկարներն այստեղ նույնական տեսք ունեն, բայց դրանք այդպիսին չեն: Սրանք են greenman-p.webp

Այս հրահանգը ոգեշնչված է youtube- ի հիանալի տեսանյութից: Մի օր ուշ երեկոյան այս տեսանյութը դիտելուց և ջանալով մտածել դասախոսության և միջնաժամկետ քննության մասին Java ծրագրավորման առաջադեմ դասի համար, այս նախագիծը ծնվեց: Վերոնշյալ պատկերները, այս հրահանգում նկարագրված ծածկագրի հետ միասին, անվճար են Github- ում:

Պարագաներ

Ձեզ հարկավոր կլինի համակարգիչ և պետք է իմանաք, թե ինչպես կազմել և գործարկել Java ծրագիր: Այս ծրագիրը ընդամենը երկու կարճ ֆայլ է, և ձեզ հարկավոր է այն գործարկել հրամանի տողում:

Քայլ 1: Ի՞նչ է ստեգանոգրաֆիան

Դուք պետք է դիտեք YouTube- ի տեսանյութը, որը ես կապեցի նախորդ քայլին, բայց ահա ամփոփագիրը.

Եթե Ձեզ անհրաժեշտ է թաքցնել ընկերոջը գաղտնի հաղորդագրություն, ապա դա անելու հիանալի միջոց է Ստեգանոգրաֆիան: Պատկերային Ստեգանոգրաֆիայի գաղափարը պարզ է. համակարգչային պատկերները պատրաստված են պիքսելներից, և յուրաքանչյուր պիքսելը կարմիրի, կանաչի և կապույտի համադրություն է: Համակարգչային պատկերի բազմաթիվ ձևաչափերում յուրաքանչյուր պիքսելում կարմիր, կանաչ և կապույտ քանակներն արտահայտվում են որպես 0-127 արժեքներ: Այսպես, օրինակ, շատ կարմիր պիքսելն ունենալու է 127 կարմիր արժեք և զրոյական կանաչ և կապույտ արժեքներ: Հնարքը սա է. 126 -ի կարմիր ինտենսիվությունը չի տարբերվում կարմիրից 127 -ից (մարդու աչքին): Եվ այսպես, յուրաքանչյուր կարմիր պիքսելում գումարած կամ մինուս մեկով սղոցելով, մենք կարող ենք պիքսելներում բիթեր թաքցնել: Եթե մենք գտնում ենք բեկորները հետ հավաքելու խորամանկ եղանակը, կարող ենք առբերել այն տվյալները, որոնք մենք մտցրել ենք պատկերի մեջ:

Եղի՛ր ստեղծագործ: Ստեգանոգրաֆիան կարող է կատարվել ցանկացած թվային մեդիայի միջոցով: Դուք կարող եք, օրինակ, նվագել երաժշտական կամ վիդեո ֆայլերի բիթերի հետ, բայց դա պահանջում է, որ դուք ավելի շատ հետազոտություններ կատարեք այս հրահանգի շրջանակներից դուրս:

Քայլ 2. Ինչպես է տեքստը կոդավորված համակարգիչներում

Ինչպես է տեքստը կոդավորված համակարգիչներում
Ինչպես է տեքստը կոդավորված համակարգիչներում

Այն, ինչ հետևում է այստեղ, կարող է պահանջել CS- ի կամ հոբբիստական կրքի մեծ աստիճան հասկանալու համար: Համակարգիչները տվյալները պահում են բիթերում ՝ որպես 1s և 0s: Այս 1 -երն ու 0 -երը, որպես կանոն, խմբավորված են 8 -ական փնջերում և կոչվում են «բայթ»: Ինչպես բացատրվում է այստեղ և այստեղ, կան մի քանի եղանակներ, որոնցով մենք կարող ենք ասել համակարգչին `բայթերը մեկնաբանել որպես տեքստ: Ստեգանոգրաֆիայի այս դասախոսությունից/ուսանելիից առավելագույնը ստանալու համար պետք է քիչ թե շատ հասկանալ ASCII- ը և UTF8- ը: Սրանք լեզվական տվյալների մի շարք բայթերի կոդավորման երկու սովորական եղանակ են:

Այս թեմայի վերաբերյալ պատկերացում կազմելուց հետո կհասկանաք սա. ASCII- ում և UTF8- ում «the» բառը ներկայացված է հետևյալ բայթերով (վեցանկյուն) 0x74 0x68 0x65: Երկուականում այս բայթերն են ՝ 01110100b 01101000b 01101101b

Ավելին, դուք կհասկանաք, որ UTF8- ում Grinning Face Emoji- ն ներկայացված է հետևյալ բայթերով (վեցանկյուն) 0xF0 0x9F 0x98 0x80: Երկուականում այս բայթերն են 11110000 բ 10011111 բ 10011000 բ 10000000 բ:

Ամեն դեպքում, կից սքրինշոթում կտեսնեք, որ իմ համակարգիչն ինչ -որ բան է անում այս բայթերով: Themրագրի ելքում ես դրանք ընդգծել եմ սլաքներով և մեծ «ՆԱՅԵԼ»:

Քայլ 3: Ինչպես է աշխատում ծրագիրը

Github- ից ծրագիրը կազմելը հեշտ է: Ստացեք առաջին էջում ցուցադրվող ռեպոը մեկ -մեկ

Theրագիրն այսպես է գործարկվում հրամանի տողից ՝ java Main input-p.webp

կից օրինակներում կտեսնեք, որ ես վարել եմ java Main greenman-p.webp

Դուք նույնը կանեք:

Եթե նայեք Main.java- ին, կտեսնեք, որ սա այն է, ինչ տեղի է ունենում.

  1. Programրագիրը պատկերն ընթերցում է 2D զանգվածի մեջ
  2. Programրագիրը ձեր մատակարարած հաղորդագրությունը վերածում է բայթ զանգվածի (բայթ )
  3. Այնուհետեւ ծրագիրը օգտագործում է MessageHider դասը `պատկերների զանգվածում հաղորդագրության բայթերը թաքցնելու համար:
  4. Programրագիրը այնուհետև պատկերի 2d զանգվածը գրում է ֆայլին (output.png) ՝ ներսում թաքնված տվյալներով: Եթե նայեք այս պատկերին, ապա այն չի տարբերվի բնօրինակից
  5. Այնուհետև ծրագիրը կարդում է output.png- ը նոր 2D զանգվածի մեջ և օգտագործում է extractMessage () գործառույթը `վերջին բիթը հանելու ձեր պահանջած բազմաթիվ բայթերից: Այս բիթերը էկրանին կտպագրվեն 8 -ոց փաթեթներով, այնպես որ կարող եք տեսնել, թե ինչ տվյալների թաքնված է երկուական ներկայացումը:

Այսպիսով, ծածկագիրն աշխատում է այնպես, ինչպես սպասում էինք:

Քայլ 4: Եզրակացություն

Այսպիսով, ես ձեզ տվեցի աշխատանքային ծածկագիր, ապացույց, որ այն աշխատում է պատկերի տեսքով, և որոշ դասախոսություններ, որոնք ես տալիս եմ իմ համալսարանի ուսանողներին: Ես ձեզ նույնպես մարտահրավեր եմ նետել: Ես մի քանի ժամ ծախսեցի ծածկագիրը գրելու և դասախոսություններ պատրաստելու համար, այնպես որ, ցավում եմ, որ այս հրահանգը շատ նկարներ չունի: Եթե կարծում եք, որ ստեգանոգրաֆիան հետաքրքիր է, ընդունեք իմ մարտահրավերը:

Խորհուրդ ենք տալիս: