[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Any isencrypted function available?



> 
> On Sun, Jun 15, 2008 at 10:56 PM, buyoppy
> <buyoppy@yahoo.co.jp> wrote:
> 
> >  I saw a webpage of Solaris's 'isencrypted'
> function which
> > inspects some data in a buffer is encrypted or not
> using
> > some algorithm including statistical analysis. But
> now I
> > cannot find that page on the Internet...
> 
> 
> Try this implementation, which I have not tested (or
> even compiled).
> 
> #include <stdlib.h>
> #include <zlib.h>
> 
> enum {
>   PLANB_BUF_SIZE = 512;
>   INADEQUATELY_EXPLAINED_MAGIC_NUMBER = 5;
> };
> 
> static int incompressible(const char *inbuf, size_t
> len,
> 			char *outbuf, size_t outlen) {
>   int rv = compress2(outbuf, outlen, inbuf, len,
> 		     INADEQUATELY_EXPLAINED_MAGIC_NUMBER);
>   if (Z_BUF_ERROR == rv)
>     return 0;			/* it grew. */
>   else if (Z_MEM_ERROR == rv)
>     return -1;			/* meh, it's a guess. */
>   else
>     return rv > len;
> }
> 
> 
> int isencrypted(const char *buf, size_t len) {
>   int retval;
>   char planb_buf[PLANB_BUF_SIZE];
>   void *out = malloc(len);
>   if (out) {
>     retval = incompressible(buf, len, out, len);
>     free (out);
>     return retval;
>   } else {
>     return incompressible(buf, PLANB_BUF_SIZE,
> planb_buf, PLANB_BUF_SIZE);
>   }
> }

 Thanks for your code, which may be useful when I would
have miss-erased zip extension of an archive.
 But I mean 'encrypted' (NOT 'compressed') data.
 Thanks.


--------------------------------------
GANBARE! NIPPON! Chance to win 50,000 Yahoo! Points!
http://pr.mail.yahoo.co.jp/ganbare-nippon/


Reply to: