<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Steganography in Python</title>
	<atom:link href="http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/feed/" rel="self" type="application/rss+xml" />
	<link>http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/</link>
	<description>Voluntarily cast upon the waves of outrageous fortune, this lowly geek flops from peak to peak of the technological ocean. Linux, Windows, C, Ruby, Python and embedded systems all attempt to pull our stalwart hero down. Will he survive alone or will the lifeboat of corporate servitude be too tempting.</description>
	<lastBuildDate>Sat, 24 Oct 2009 10:57:07 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Carlos</title>
		<link>http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1743</link>
		<dc:creator>Carlos</dc:creator>
		<pubDate>Sat, 17 Oct 2009 09:53:56 +0000</pubDate>
		<guid isPermaLink="false">http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1743</guid>
		<description>Hi,

You are wrong.
Stepic doesn&#039;t work for JPEG files(http://domnit.org/blog/2007/02.html).
The reason: JPEG are not lossles format.
Your program runs because you use the same variable to decode (without read the file another time). If you don&#039;t beleave me, try this:
import Image
import stepic
im = Image.open(’in.jpg’)
s = stepic.Steganographer(im)
im2 = s.encode(’This is some cool text’)
im2.save(’out.jpg’,&#039;JPEG’)
im3 = Image.open(’out.jpg’)
s = stepic.decode(im3)
data = s.decode()
print data</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>You are wrong.<br />
Stepic doesn&#8217;t work for JPEG files(http://domnit.org/blog/2007/02.html).<br />
The reason: JPEG are not lossles format.<br />
Your program runs because you use the same variable to decode (without read the file another time). If you don&#8217;t beleave me, try this:<br />
import Image<br />
import stepic<br />
im = Image.open(’in.jpg’)<br />
s = stepic.Steganographer(im)<br />
im2 = s.encode(’This is some cool text’)<br />
im2.save(’out.jpg’,&#8217;JPEG’)<br />
im3 = Image.open(’out.jpg’)<br />
s = stepic.decode(im3)<br />
data = s.decode()<br />
print data</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vkm</title>
		<link>http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1722</link>
		<dc:creator>vkm</dc:creator>
		<pubDate>Wed, 13 May 2009 14:06:40 +0000</pubDate>
		<guid isPermaLink="false">http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1722</guid>
		<description>Hi,

I tried following with the stenography code provided in your site.

- opened a binary file
- read few lines
- wrote those files in the image file opened
- tried to decode

But it couldn&#039;t decode that. Does this code work for binary content as well? I got the following error:
 File &quot;&quot;, line 1, in 
UnicodeDecodeError: &#039;ascii&#039; codec can&#039;t decode byte 0xc3 in position 12: ordinal not in range(128)


Regards,
Vkm</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I tried following with the stenography code provided in your site.</p>
<p>- opened a binary file<br />
- read few lines<br />
- wrote those files in the image file opened<br />
- tried to decode</p>
<p>But it couldn&#8217;t decode that. Does this code work for binary content as well? I got the following error:<br />
 File &#8220;&#8221;, line 1, in<br />
UnicodeDecodeError: &#8216;ascii&#8217; codec can&#8217;t decode byte 0xc3 in position 12: ordinal not in range(128)</p>
<p>Regards,<br />
Vkm</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lenny</title>
		<link>http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1581</link>
		<dc:creator>Lenny</dc:creator>
		<pubDate>Wed, 07 Nov 2007 16:54:20 +0000</pubDate>
		<guid isPermaLink="false">http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1581</guid>
		<description>Oops, I meant to respond to your &#039;hashing points to next pixel&#039; idea. When I was writing Stepic, I actually thought about doing either hashing or just plain linking to indicate the location of the next pixel, but I decided that it&#039;s not necessary. Steganography is not encryption--anybody who suspects that data is hidden in an image will find it, whether the significant pixels are sequential or linked. Of course, you can just use real encoding as the first step, then use steganography.</description>
		<content:encoded><![CDATA[<p>Oops, I meant to respond to your &#8216;hashing points to next pixel&#8217; idea. When I was writing Stepic, I actually thought about doing either hashing or just plain linking to indicate the location of the next pixel, but I decided that it&#8217;s not necessary. Steganography is not encryption&#8211;anybody who suspects that data is hidden in an image will find it, whether the significant pixels are sequential or linked. Of course, you can just use real encoding as the first step, then use steganography.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lenny</title>
		<link>http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1580</link>
		<dc:creator>Lenny</dc:creator>
		<pubDate>Wed, 07 Nov 2007 16:49:35 +0000</pubDate>
		<guid isPermaLink="false">http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1580</guid>
		<description>Quickness is due to pingback.

640x480 should be enough for small text. Each character is spread across 3 pixels.

You&#039;re probably having trouble with the command line because you are saving JPEGs. Since JPEG is lossy, it doesn&#039;t preserve the exact values Stepic uses. A good output format for Stepic is PNG--if that makes the files too large, this type of steganography is probably not right for the application.

Yep, I assumed you got the link from Daily Python URL, since that link Xtupled traffic to my site, where X is a single digit number that depends on what metric you look at.

Have you read the &lt;a href=&quot;http://domnit.org/2007/02/stepic-explanation&quot; rel=&quot;nofollow&quot;&gt;explanation of how Stepic works&lt;/a&gt;?</description>
		<content:encoded><![CDATA[<p>Quickness is due to pingback.</p>
<p>640&#215;480 should be enough for small text. Each character is spread across 3 pixels.</p>
<p>You&#8217;re probably having trouble with the command line because you are saving JPEGs. Since JPEG is lossy, it doesn&#8217;t preserve the exact values Stepic uses. A good output format for Stepic is PNG&#8211;if that makes the files too large, this type of steganography is probably not right for the application.</p>
<p>Yep, I assumed you got the link from Daily Python URL, since that link Xtupled traffic to my site, where X is a single digit number that depends on what metric you look at.</p>
<p>Have you read the <a href="http://domnit.org/2007/02/stepic-explanation" rel="nofollow">explanation of how Stepic works</a>?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Diarmuid</title>
		<link>http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1579</link>
		<dc:creator>Diarmuid</dc:creator>
		<pubDate>Wed, 07 Nov 2007 16:32:25 +0000</pubDate>
		<guid isPermaLink="false">http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1579</guid>
		<description>Lenny,

Man, That was quick. The two of us are probably the only two in the whole webosphere that used the word &quot;Steganography&quot; today!!!

I was thinking that maybe you could pass in an MD5 hash an that the get next pixel method would use that to determine where it would go next. There would be no guarantee that an allready modified pixel would not be remodified but the chances and consequences would be low.

The images are 640x480 and the amount of text is low. How much is possible. 

Have a look at the command line as that didn&#039;t work for me. I didn&#039;t investigate at it may well have been my problem

Well done anyway and thanks for the code and the tip. BTW, I got the link off the PIL news page today.

http://www.pythonware.com/daily/

Cheers

Diarmuid</description>
		<content:encoded><![CDATA[<p>Lenny,</p>
<p>Man, That was quick. The two of us are probably the only two in the whole webosphere that used the word &#8220;Steganography&#8221; today!!!</p>
<p>I was thinking that maybe you could pass in an MD5 hash an that the get next pixel method would use that to determine where it would go next. There would be no guarantee that an allready modified pixel would not be remodified but the chances and consequences would be low.</p>
<p>The images are 640&#215;480 and the amount of text is low. How much is possible. </p>
<p>Have a look at the command line as that didn&#8217;t work for me. I didn&#8217;t investigate at it may well have been my problem</p>
<p>Well done anyway and thanks for the code and the tip. BTW, I got the link off the PIL news page today.</p>
<p><a href="http://www.pythonware.com/daily/" rel="nofollow">http://www.pythonware.com/daily/</a></p>
<p>Cheers</p>
<p>Diarmuid</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lenny</title>
		<link>http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1578</link>
		<dc:creator>Lenny</dc:creator>
		<pubDate>Wed, 07 Nov 2007 16:06:12 +0000</pubDate>
		<guid isPermaLink="false">http://designbuildtestrepeat.wordpress.com/2007/11/07/steganography-in-python/#comment-1578</guid>
		<description>Wow, it&#039;s cool that somebody is using Stepic for something real.

Just a note, if you&#039;re only making 1 image+data for each input image, you don&#039;t have to manually make a Steganographer instance. You can just do &lt;code&gt;im2 = stepic.encode(im, &#039;This is some cool text&#039;)&lt;/code&gt;.

If you&#039;re using this in an automated production environment, are you guaranteeing that the images are large enough to store the data?

I haven&#039;t been actively changing the code (I think it&#039;s stable, but there are some TODOs I haven&#039;t touched). If you find any bugs, I&#039;d happily take bug reports or patches.</description>
		<content:encoded><![CDATA[<p>Wow, it&#8217;s cool that somebody is using Stepic for something real.</p>
<p>Just a note, if you&#8217;re only making 1 image+data for each input image, you don&#8217;t have to manually make a Steganographer instance. You can just do <code>im2 = stepic.encode(im, 'This is some cool text')</code>.</p>
<p>If you&#8217;re using this in an automated production environment, are you guaranteeing that the images are large enough to store the data?</p>
<p>I haven&#8217;t been actively changing the code (I think it&#8217;s stable, but there are some TODOs I haven&#8217;t touched). If you find any bugs, I&#8217;d happily take bug reports or patches.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
