LSB стСганография

Π’Π΅Π΄Π½ΡŠΠΆ написах моята ΠΏΡŠΡ€Π²Π° публикация Π² Ρ…ΡŠΠ±. И Ρ‚Π°Π·ΠΈ публикация бСшС посвСтСна Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ интСрСсСн ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ стСганографията. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎΡ‚ΠΎ Π² ΠΎΠ½Π°Π·ΠΈ стара Ρ‚Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Ρ€Π΅Ρ‡Π΅ стСганография Π² истинския смисъл Π½Π° Π΄ΡƒΠΌΠ°Ρ‚Π°. Π’ΠΎΠ²Π° Π΅ просто ΠΈΠ³Ρ€Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, Π½ΠΎ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° доста интСрСсна ΠΈΠ³Ρ€Π°.

ДнСс Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΠΌ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-дълбоко ΠΈ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ LSB Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ°. ΠŸΡ€ΠΈ интСрСс заповядайтС ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚. (По-ΠΌΠ°Π»ΠΊΠΎ Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚: ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚.)

ΠŸΡ€Π΅Π΄ΠΈ всичко Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС. ВсСки Π·Π½Π°Π΅, Ρ‡Π΅ Ρ†Π΅Π»Ρ‚Π° Π½Π° криптографията Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ нСвъзмоТно Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° сСкрСтна информация. Π Π°Π·Π±ΠΈΡ€Π° сС, криптографията ΠΈΠΌΠ° своитС прилоТСния, Π½ΠΎ ΠΈΠΌΠ° ΠΈ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅. НС Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°ΠΌΠ΅ информацията, Π½ΠΎ сС прСструвамС, Ρ‡Π΅ я нямамС. Π’ΠΎΡ‡Π½ΠΎ Π·Π°Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π° стСганографията. УикипСдия Π½ΠΈ увСрява, Ρ‡Π΅ β€žΡΡ‚Π΅Π³Π°Π½ΠΎΠ³Ρ€Π°Ρ„ΠΈΡΡ‚Π° (ΠΎΡ‚ Π³Ρ€ΡŠΡ†ΠΊΠΈ στΡγανοσ – скрит ΠΈ Π³Ρ€ΡŠΡ†ΠΊΠΈ γραφω – пиша, Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ β€žΡ‚Π°ΠΉΠ½ΠΎ ΠΏΠΈΡΠ°Π½Π΅β€œ) Π΅ Π½Π°ΡƒΠΊΠ° Π·Π° скритото ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° информация Ρ‡Ρ€Π΅Π· Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° самия Ρ„Π°ΠΊΡ‚ Π½Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π² Ρ‚Π°ΠΉΠ½Π°.

Π Π°Π·Π±ΠΈΡ€Π° сС, Π½ΠΈΠΊΠΎΠΉ Π½Π΅ забранява ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° криптографски ΠΈ стСганографски ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π° Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Ρ‚Π΅ правят Ρ‚ΠΎΠ²Π°, Π½ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основитС. Ако Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΡ‚Π΅ статията Π² УикипСдия, Ρ‰Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, Ρ‡Π΅ стСганографскитС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ‚.Π½Π°Ρ€. ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΅ всяка информация, която ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС скриС Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ‚Π°ΠΉΠ½ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅.

Π’ нашия случай ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ Ρ‰Π΅ бъдС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² BMP Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. ΠŸΡŠΡ€Π²ΠΎ, Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ структурата Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ». Π€Π°ΠΉΠ»ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 4 части: Π·Π°Π³Π»Π°Π²ΠΊΠ° Π½Π° Ρ„Π°ΠΉΠ»Π°, Π·Π°Π³Π»Π°Π²ΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΏΠ°Π»Π΅Ρ‚Π° ΠΈ самото ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π—Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ трябва Π΄Π° Π·Π½Π°Π΅ΠΌ само ΠΊΠ°ΠΊΠ²ΠΎ Π΅ написано Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π°.

ΠŸΡŠΡ€Π²ΠΈΡ‚Π΅ Π΄Π²Π° Π±Π°ΠΉΡ‚Π° ΠΎΡ‚ Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° са сигнатурата Π½Π° BM, слСд Ρ‚ΠΎΠ²Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ„Π°ΠΉΠ»Π° Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ сС записва Π² Π΄Π²ΠΎΠΉΠ½Π° Π΄ΡƒΠΌΠ°, слСдващитС 4 Π±Π°ΠΉΡ‚Π° са Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ ΠΈ трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½ΡƒΠ»ΠΈ ΠΈ накрая Π΄Ρ€ΡƒΠ³Π° Π΄Π²ΠΎΠΉΠ½Π° Π΄ΡƒΠΌΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° отмСстванСто ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ» към дСйствитСлнитС Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π’ 24-Π±ΠΈΡ‚ΠΎΠ² bmp Ρ„Π°ΠΉΠ» всСки пиксСл Π΅ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ с Ρ‚Ρ€ΠΈ BGR Π±Π°ΠΉΡ‚Π°.

Π‘Π΅Π³Π° Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° стигнСм Π΄ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, остава само Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° напишСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° информация Ρ‚Π°ΠΌ. Π—Π° Ρ†Π΅Π»Ρ‚Π° Ρ‰Π΅ Π½ΠΈ трябва ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ LSB. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅ слСдната: замСствамС Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΠΈΡ‚Π΅ Π±ΠΈΡ‚ΠΎΠ²Π΅ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅Ρ‚Π΅, ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ Π·Π° Ρ†Π²Π΅Ρ‚Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ слСдващият Π±Π°ΠΉΡ‚ ΠΎΡ‚ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ‚Π°ΠΉΠ½ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π΅ 11001011, Π° Π±Π°ΠΉΡ‚ΠΎΠ²Π΅Ρ‚Π΅ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ са...11101100 01001110 01111100 0101100111..., Ρ‚ΠΎΠ³Π°Π²Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°. Π©Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Π±Π°ΠΉΡ‚Π° Π½Π° Ρ‚Π°ΠΉΠ½ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° 4 Π΄Π²ΡƒΠ±ΠΈΡ‚ΠΎΠ²ΠΈ части: 11, 00, 10, 11 ΠΈ Ρ‰Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π±ΠΈΡ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ нисък Ρ€Π΅Π΄ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ: ...11101111 01001100 01111110 0101100111…. Π’Π°ΠΊΠ°Π²Π° подмяна ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π΅ сС забСлязва ΠΎΡ‚ Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΎΡ‚ΠΎ ΠΎΠΊΠΎ. ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-стари ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ устройства Π΄ΠΎΡ€ΠΈ няма Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ.

Ясно Π΅, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π΅ само 2-Ρ‚Π° Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΠΈ Π±ΠΈΡ‚Π°, Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±Ρ€ΠΎΠΉ ΠΎΡ‚ тях. Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° слСдният ΠΌΠΎΠ΄Π΅Π»: ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π±ΠΈΡ‚ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ информация ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° скриСм ΠΈ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ смущСния Ρ‰Π΅ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° Ρ‚ΠΎΠ²Π° Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π•Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π²Π΅ изобраТСния:

LSB стСганография
LSB стСганография

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ всичкитС ΠΌΠΈ усилия Π½Π΅ ΠΌΠΎΠΆΠ°Ρ… Π΄Π° видя Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ тях, Π½ΠΎ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° във Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ описания ΠΌΠ΅Ρ‚ΠΎΠ΄, Π΅ скрито стихотворСниСто Π½Π° Луис ΠšΠ°Ρ€ΠΎΠ» β€žΠ›ΠΎΠ²ΡŠΡ‚ Π½Π° Π‘Π½Π°Ρ€ΠΊβ€œ. Ако стС ΠΏΡ€ΠΎΡ‡Π΅Π»ΠΈ Π΄ΠΎΡ‚ΡƒΠΊ, вСроятно Ρ‰Π΅ Π²ΠΈ Π΅ интСрСсно Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ. Много Π΅ просто, Π½ΠΎ Π²Π΅Π΄Π½Π°Π³Π° Ρ‰Π΅ Π²ΠΈ прСдупрСдя, Ρ‡Π΅ всичко сС ΠΏΡ€Π°Π²ΠΈ Π² Delphi. Има Π΄Π²Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π° Ρ‚ΠΎΠ²Π°: 1. Мисля, Ρ‡Π΅ Delphi Π΅ Π΄ΠΎΠ±ΡŠΡ€ Π΅Π·ΠΈΠΊ; 2. Π’Π°Π·ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° сС Ρ€ΠΎΠ΄ΠΈ Π² процСса Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° курс ΠΏΠΎ основи Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΎΡ‚ΠΎ Π·Ρ€Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π°Ρ‚Π°, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°ΠΌ Ρ‚ΠΎΠ·ΠΈ курс, всС ΠΎΡ‰Π΅ Π½Π΅ знаят Π½ΠΈΡ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ освСн Delphi. Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ със синтаксиса, трябва Π΄Π° сС обясни Π΅Π΄Π½ΠΎ Π½Π΅Ρ‰ΠΎ: shl x Π΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎ измСстванС наляво с x, shr x Π΅ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎ измСстванС надясно с x.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅, Ρ‡Π΅ пишСм тСкст, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ Π² Π½ΠΈΠ· Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΈ замСствамС Π΄ΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄Π²Π° Π±Π°ΠΉΡ‚Π°:
Код за запис:

for i:=1 to length(str) do
    Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌ
      l1:=byte(str[i]) shr 6;
      l2:=byte(str[i]) shl 2; l2:=l2 shr 6;
      l3:=byte(str[i]) shl 4; l3:=l3 shr 6;
      l4:=byte(str[i]) shl 6; l4:=l4 shr 6;
 
      f.ReadBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l1;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l2;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l3;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l4;
      f.WriteBuffer(tmp,1);
 
    ΠΊΡ€Π°Ρ;

ΠΊΠΎΠ΄ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅:

Π·Π° i:=1 Π΄ΠΎ MsgSize do
    Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌ
      f.ReadBuffer(tmp,1);
      l1:=tmp shl 6;
      f.ReadBuffer(tmp,1);
      l2:=tmp shl 6; l2:=l2 shr 2;
      f.ReadBuffer(tmp,1);
      l3:=tmp shl 6; l3:=l3 shr 4;
      f.ReadBuffer(tmp,1);
      l4:=tmp shl 6; l4:=l4 shr 6;
      str:=str+char(l1+l2+l3+l4);
    ΠΊΡ€Π°Ρ;

Π•, Π·Π° наистина ΠΌΡŠΡ€Π·Π΅Π»ΠΈΠ²ΠΈΡ‚Π΅ - Π²Ρ€ΡŠΠ·ΠΊΠ° към ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈ нСйния ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄.

Благодаря.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€