Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #37483

Re: Converting a number back to it's original string (that was hashed to generate that number)

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <nikos.gr33k@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'received:209.85.223': 0.03; 'error:': 0.05; 'paths': 0.05; '%s"': 0.07; 'host,': 0.07; 'try:': 0.07; 'python': 0.09; '(1,': 0.09; 'encode': 0.09; 'indicates': 0.09; 'information?': 0.09; 'modulo': 0.09; 'string)': 0.09; 'subject:number': 0.09; 'subject:string': 0.09; 'to:addr:comp.lang.python': 0.09; 'cc:addr:python-list': 0.10; '"error': 0.16; '%d:': 0.16; '%s,': 0.16; '(eg.': 0.16; 'alphabet': 0.16; 'created.': 0.16; 'hex': 0.16; 'hits': 0.16; 'know)': 0.16; 'losing': 0.16; 'row': 0.16; 'simple.': 0.16; 'subject: \n ': 0.16; 'subject:Converting': 0.16; 'string': 0.17; 'wrote:': 0.17; 'duplicate': 0.17; 'exists': 0.17; 'code,': 0.18; 'commands,': 0.22; 'keys': 0.22; 'please?': 0.22; 'cc:2**0': 0.23; 'insert': 0.23; 'cc:no real name:2**0': 0.24; 'external': 0.24; 'host': 0.24; 'cc:addr:python.org': 0.25; 'header:In-Reply-To:1': 0.25; 'header:User-Agent:1': 0.26; 'am,': 0.27; 'done.': 0.27; 'question': 0.27; 'record': 0.28; 'restricted': 0.29; 'strings,': 0.29; 'primary': 0.30; 'asking': 0.32; 'file': 0.32; 'etc.)': 0.32; 'could': 0.32; 'print': 0.32; 'skip:s 30': 0.33; 'received:google.com': 0.34; 'done': 0.34; 'path': 0.35; 'so,': 0.35; 'table': 0.35; 'received:209.85': 0.35; 'except': 0.36; 'but': 0.36; 'anything': 0.36; "i'll": 0.36; 'subject: (': 0.36; 'ok,': 0.37; 'received:209': 0.37; 'subject:: ': 0.38; 'store': 0.38; 'page': 0.38; 'where': 0.40; 'help': 0.40; 'easy': 0.60; 'most': 0.61; 'save': 0.61; 'map': 0.61; 'kind': 0.61; 'back': 0.62; '(that': 0.62; 'more': 0.63; 'legal': 0.65; 'date,': 0.65; 'else.': 0.65; 'pin': 0.65; '8bit%:100': 0.70; '8bit%:92': 0.70; '2013': 0.84; 'back?': 0.84; 'subject:original': 0.84; '100,000': 0.91; 'obvious,': 0.91; 'urls,': 0.91; 'angel': 0.93; 'realistic': 0.93
X-Received by 10.50.236.40 with SMTP id ur8mr510862igc.6.1358955051195; Wed, 23 Jan 2013 07:30:51 -0800 (PST)
Newsgroups comp.lang.python
Date Wed, 23 Jan 2013 07:30:49 -0800 (PST)
In-Reply-To <mailman.894.1358949546.2939.python-list@python.org>
Complaints-To groups-abuse@google.com
Injection-Info glegroupsg2000goo.googlegroups.com; posting-host=94.68.70.179; posting-account=DYJQ-woAAACEPH85Au2BhUVfFTfSfVa4
References <2c2351fb-2044-4351-af3e-63cff4fbf0f8@googlegroups.com> <mailman.891.1358946424.2939.python-list@python.org> <ab623ed2-5f3e-454b-b41e-86301fb0c89f@googlegroups.com> <mailman.894.1358949546.2939.python-list@python.org>
User-Agent G2/1.0
X-Google-Web-Client true
X-Google-IP 94.68.70.179
MIME-Version 1.0
Subject Re: Converting a number back to it's original string (that was hashed to generate that number)
From Ferrous Cranus <nikos.gr33k@gmail.com>
To comp.lang.python@googlegroups.com
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding quoted-printable
Cc python-list@python.org
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Message-ID <mailman.904.1358955551.2939.python-list@python.org> (permalink)
Lines 104
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1358955551 news.xs4all.nl 6907 [2001:888:2000:d::a6]:60412
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:37483

Show key headers only | View raw


Τη Τετάρτη, 23 Ιανουαρίου 2013 3:58:45 μ.μ. UTC+2, ο χρήστης Dave Angel έγραψε:
> On 01/23/2013 08:38 AM, Ferrous Cranus wrote:
> 
> > Please DON'T tell me to save both the pin <=> filepath and associate them (that can be done by SQL commands, i know)
> 
> > I will not create any kind of primary/unique keys to the database.
> 
> > I will not store the filepath into the database, just the number which indicates the filepath(html page).
> 
> > Also no external table associating fielpaths and numbers.
> 
> > i want this to be solved only by Python Code, not database oriented.
> 
> >
> 
> >
> 
> > That is:  I need to be able to map both ways, in a one to one relation, 5-digit-integer <=> string
> 
> >
> 
> > int( hex ( string ) ) can encode a string to a number. Can this be decoded back? I gues that can also be decoded-converted back because its not losing any information. Its encoding, not compressing.
> 
> >
> 
> > But it's the % modulo that breaks the forth/back association.
> 
> >
> 
> > So, the question is:
> 
> >
> 
> > HOW to map both ways, in a one to one relation, (5-digit-integer <=> string) without losing any information?
> 
> >
> 
> 
> 
> Simple.  Predefine the 100,000 legal strings, and don't let the user use 
> 
> anything else.  One way to do that would be to require a path string of 
> 
> no more than 5 characters, and require them all to be of a restricted 
> 
> alphabet of 10 characters.  (eg. the alphabet could be 0-9, which is 
> 
> obvious, or it could be ".aehilmpst" (no uppercase, no underscore, no 
> 
> digits, no non-ascii, etc.)
> 
> 
> 
> In the realistic case of file paths or URLs, it CANNOT be done.

OK, its not doable. I'll stop asking for it.
CHANGE of plans.
i will use the database solution which is the most easy wau to do it:

============================================================

	# insert new page record in table counters or update it if already exists
	try:
		cursor.execute( '''INSERT INTO counters(page, hits) VALUES(%s, %s) 
								ON DUPLICATE KEY UPDATE hits = hits + 1''', (htmlpage, 1) )
	except MySQLdb.Error, e:
		print ( "Query Error: ", sys.exc_info()[1].excepinfo()[2] )
		
	# update existing visitor record if same pin and same host found
	try:
		cursor.execute( '''UPDATE visitors SET hits = hits + 1, useros = %s, browser = %s, date = %s WHERE pin = %s AND host = %s''', (useros, browser, date, page, host))
	except MySQLdb.Error, e:
		print ( "Error %d: %s" % (e.args[0], e.args[1]) )
	
	# insert new visitor record if above update did not affect a row
	if cursor.rowcount == 0:
		cursor.execute( '''INSERT INTO visitors(hits, host, useros, browser, date) VALUES(%s, %s, %s, %s, %s)''', (1, host, useros, browser, date) )

============================================================

I can INSERT a row to the table "counter"
I cannot UPDATE or INSERT into the table "visitors" without knowing the "pin" primary key number the database created.

Can you help on this please?

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Converting a number back to it's original string (that was hashed to generate that number) Ferrous Cranus <nikos.gr33k@gmail.com> - 2013-01-23 04:21 -0800
  Re: Converting a number back to it's original string (that was hashed to generate that number) Lele Gaifax <lele@metapensiero.it> - 2013-01-23 14:06 +0100
    Re: Converting a number back to it's original string (that was hashed to generate that number) newspost2012@gmx.de - 2013-01-23 05:24 -0800
    Re: Converting a number back to it's original string (that was hashed to generate that number) newspost2012@gmx.de - 2013-01-23 05:24 -0800
    Re: Converting a number back to it's original string (that was hashed to generate that number) Ferrous Cranus <nikos.gr33k@gmail.com> - 2013-01-23 05:38 -0800
      Re: Converting a number back to it's original string (that was hashed to generate that number) Dave Angel <d@davea.name> - 2013-01-23 08:58 -0500
        Re: Converting a number back to it's original string (that was hashed to generate that number) Ferrous Cranus <nikos.gr33k@gmail.com> - 2013-01-23 07:30 -0800
        Re: Converting a number back to it's original string (that was hashed to generate that number) Ferrous Cranus <nikos.gr33k@gmail.com> - 2013-01-23 07:30 -0800
    Re: Converting a number back to it's original string (that was hashed to generate that number) Ferrous Cranus <nikos.gr33k@gmail.com> - 2013-01-23 05:38 -0800

csiph-web