Мазмұны:
- Жабдықтар
- 1 -қадам: Стеганография дегеніміз не?
- 2 -қадам: Мәтін компьютерлерде қалай кодталады
- 3 -қадам: Бағдарлама қалай жұмыс істейді
- 4 -қадам: Қорытынды
Бейне: Бұл PNG құпия бөлім: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-31 10:21
Сіздің міндетіңіз, құрметті оқырман, мен сіз үшін github -ға салған output-p.webp
Мұндағы екі сурет бірдей көрінеді, бірақ олар емес, бұл жоғарыда мен байланыстырған greenman-p.webp
Бұл нұсқаулық youtube -тегі керемет бейнеден шабыттандырылған. Бір күні түнде бұл бейнені көріп, Java бағдарламалаудың жетілдірілген сабағына арналған жақсы дәріс пен аралық бақылау туралы ойлаудан қиналғаннан кейін, бұл жоба дүниеге келді. Жоғарыда келтірілген суреттер осы нұсқаулықта сипатталған кодпен бірге Github -да тегін.
Жабдықтар
Сізге компьютер қажет болады және сіз Java бағдарламасын құрастыру мен іске қосуды білуіңіз керек. Бұл бағдарлама тек екі қысқа файл және оны пәрмен жолында іске қосу қажет.
1 -қадам: Стеганография дегеніміз не?
Алдыңғы қадамда мен байланыстырған ютубтағы бейнені қарау керек, бірақ қысқаша ақпарат:
Егер сізге досыңызға құпия хабарламаны жасыру қажет болса, мұны істеудің керемет әдісі - стеганография. Имидждік стеганография идеясы қарапайым; компьютерлік кескіндер пиксельден тұрады және әр пиксель қызыл, жасыл және көк түстердің комбинациясынан тұрады. Көптеген компьютерлік кескін форматтарында әр пиксельдегі қызыл, жасыл және көк түстер 0-127 аралығындағы мәндермен өрнектеледі. Мәселен, мысалы, өте қызыл пиксельдің қызыл мәні 127, жасыл және көк мәндері нөлге тең болар еді. Мұның айла -шарғы мынада: қызыл қарқындылық 126 -ны қызыл қарқындылықтан 127 -ден ажыратуға болмайды (адам көзіне). Сонымен, әр қызыл пиксельде плюс немесе минус біреуі арқылы біз биттерді пиксельде жасыра аламыз. Егер біз биттерді жинаудың жасырын әдісін тапсақ, біз суретке енгізілген деректерді ала аламыз!
Шығармашылық болыңыз! Стеганографияны кез келген цифрлық медиамен жасауға болады! Сіз, мысалы, музыкада немесе бейне файлдарда битпен ойнай аласыз, бірақ бұл сізге осы нұсқаулықтың шеңберінен тыс көбірек зерттеулер жүргізуді талап етеді.
2 -қадам: Мәтін компьютерлерде қалай кодталады
Мұнан кейін түсіну үшін CS дәрежесі немесе көптеген әуесқойлық құмарлық қажет болуы мүмкін. Компьютерлер биттерді 1с және 0с түрінде сақтайды. Бұл 1лер мен 0 -лер әдетте 8 -ден тұратын топтарға біріктірілген және оларды «байт» деп атайды. Мұнда және мұнда түсіндірілгендей, компьютерге байттарды мәтін ретінде түсіндірудің бірнеше жолы бар. Осы стеганографиялық дәрістен барынша тиімді болу үшін сізге ASCII мен UTF8 туралы көп немесе аз түсіну қажет. Бұл тілдік деректерді байттар қатарында кодтаудың екі жалпы әдісі.
Сіз бұл тақырып туралы түсінік алғаннан кейін сіз мынаны түсінесіз: ASCII және UTF8 -де «the» сөзі келесі байттармен (он алтылық) 0x74 0x68 0x65 беріледі. Екілік жүйеде бұл байттар: 01110100b 01101000b 01101101b
Сонымен қатар, сіз UTF8 -де күлімсірейтін эмодзи келесі байттармен (он алтылық) көрсетілгенін түсінесіз: 0xF0 0x9F 0x98 0x80. Екілік жүйеде бұл байттар - 11110000b 10011111b 10011000b 10000000b.
Қалай болғанда да, сіз скриншотта менің компьютерім осы байттармен бірдеңе істеп жатқанын көресіз. Мен оларды бағдарламаның шығысында көрсеткілермен және үлкен «ҚАРАҢЫЗ!» Деп бөлдім.
3 -қадам: Бағдарлама қалай жұмыс істейді
Github -тан бағдарламаны құрастыру оңай. Алғашқы бетте көрсетілген реподы осы жерден алыңыз
Бағдарлама пәрмен жолынан осылай орындалады: java Main input-p.webp
қоса берілген мысалдардан сіз менің java Main greenman-p.webp
Сіз дәл осылай жасайсыз.
Егер сіз Main.java -ға қарасаңыз, онда дәл осылай болатынын көресіз:
- Бағдарлама суретті 2D массивінде оқиды
- Бағдарлама сіз берген хабарды байт массивіне айналдырады (байт )
- Содан кейін бағдарлама кескін массивіндегі хабар байттарын жасыру үшін MessageHider класын қолданады.
- Содан кейін бағдарлама 2d массивін файлды (output.png) ішінде жасырылған деректермен жазады. Егер сіз бұл суретке қарасаңыз, оны түпнұсқадан ажыратуға болмайды
- Содан кейін бағдарлама output-p.webp" />
Бұл код біз күткендей жұмыс істейді.
4 -қадам: Қорытынды
Мен сізге жұмыс кодын, оның сурет түрінде жұмыс істейтінін дәлелдейтін құжатты және университет студенттеріне берген дәріс жазбаларымды ұсындым. Мен де сізге сынақ тапсырдым! Мен кодты жазуға және дәріс жазбаларын дайындауға бірнеше сағат жұмсадым, сондықтан бұл нұсқаулықта көптеген суреттер жоқ екеніне өкінемін. Егер сіз стеганографияны қызықты деп ойласаңыз, менің шақыруымды қабыл алыңыз!
Ұсынылған:
Бұл жоғары кернеулі ойыншықтар жарқырайды!: 11 қадам (суреттермен)
Бұл жоғары кернеулі ойыншықтар жарқырайды!: Міне, 70-жылдары орта мектептерде танымал болған ретро-Click-Clack ойыншығының екі электростатикалық нұсқасы. 1.0 нұсқасы-бұл өте бюджеттік модель. Бөлшектер (қуат көзін қоспағанда) ештеңеге тең емес. Неғұрлым қымбат екенін сипаттау
Nike LED Swoosh! Бұл бөлме үшін керемет декор. Бұл әркім қайталай алатын жалғыз жоба: 5 қадам
Nike LED Swoosh! Бұл бөлме үшін керемет декор. Бұл әркім қайталай алатын бір жоба.: Құралдар-таспа өлшемі-бұрауыш 2х ағаш 20-20-3000 2х фанера 500-1000мм бұрандалар (45мм) 150х бұрандалар (35мм) 30х-скр
Егер бұл болса, онда бұл: портативті Arduino консолі: 5 қадам
Егер бұл болса, онда бұл: портативті Arduino консолі: бұл мақсатты ойын. Сіз ойнатқышты екі сыйымдылық модулімен жылжыта аласыз, ал сіз шапалақтау, айқайлау немесе қорапты шайқау сияқты қатаң дыбыстарды шығарасыз
Ардуино жалғыз ойыншы понг- Егер бұл болса, онда бұл: 5 қадам
Arduino Singleplayer понгы-Егер бұл болса, онда бұл: Dit arduino жобасы нұсқаулықтардың бірі болып табылады (https: //www.instructables.com/id/Portable-Arduino-a …). жалғыз ойыншы AI.Onderdelen -мен кездесті: Arduino Uno Nokia 5100 scherm. https: // ww
Бұл Қол ма? (Raspberry Pi камерасы + нейрондық желі) 1/2 бөлім: 16 қадам (суреттермен)
Бұл Қол ма? (Raspberry Pi камерасы + нейрондық желі) 1/2 бөлім: Бірнеше күн бұрын мен жаттығу залында оң қолымнан жарақат алдым. Содан кейін мен компьютерлік тінтуірді қолданған сайын, бұл білектің тік бұрышынан қатты ауырсынуды тудырды. Дәл сол кезде бұл маған тиді " егер біз кез келген бетті трекпке айналдырсақ, жақсы болмас па еді