$query = prepare(sprintf("INSERT INTO ``posts_%s`` VALUES ( NULL, :thread, :subject, :email, :name, :trip, :capcode, :body, :body_nomarkup, :time, :time, :files, :num_files, :filehash, :password, :ip, :range_ip_hash, :sticky, :locked, :cycle, 0, :force_anon, :embed, NULL)", $board['uri']));
>poster_id is probably called with the hashed IP address.But even if the database was wiped, as far as I can tell, poster_id still uses the old method posted below. So as long as the secure_trip_salt hasn't changed, which probably wouldn't unlike $hashSalt which was meant to rotate, and you could get the threadid and postid from a screenshot or archive, by running the range of ipv4 addresses through the function, you would get due to the uniformity property of sha-1, approximately 256 aliases of which one is from the poster.
So if I was the FBI and 8chan was not able to provide IP addresses, I would ask what the secure_trip_salt was and generate the table and match it to all the posts in that thread or at least the most significant ones, then trim down the matching IPs. After that I would query to isps or other entities who own or monitor the remaining IP addresses, and using the timestamp, get the identity of the person, if they weren't using a secure VPN that does not log and I could not deanonymize.
------------------------------
Poster id still is used as follows:
The files:
templates/post_reply.html templates/post_thread.html
Contain:
{% include 'post/poster_id.html' %}
And poster_id.html contains: {% if config.poster_ids or (mod|hasPermission(config.mod.show_ip_less, board.uri)) %}
{% if post.ip == config.tor_ip_hash %}
<span class="poster_id" title="This user is posting via the Tor hidden service.">000000</span>
{% elseif post.thread %}
<span class="poster_id">{{ poster_id(post.ip, post.thread, board.uri) }}</span>
{% else %}
<span class="poster_id">{{ poster_id(post.ip, post.id, board.uri) }}</span>
{% endif %}
{% endif %}
Which still call the poster_id function in https://github.com/OpenIB/OpenIB/blob/master/inc/functions.p...which returns:
return substr(sha1(sha1($ip . $config['secure_trip_salt'] . $thread . $board) . $config['secure_trip_salt']), 0, $config['poster_id_length']);