1. A method, comprising: obtaining, by a processor, a plurality of artifacts in plaintext form; generating, by the processor, fingerprints for each of the plurality of artifacts by generating shingles from text within each of the plurality of artifacts so that there at least one character overlap between adjacent shingles; and cryptographically hashing the shingles to generate a plurality of artifact fingerprints; storing the artifact fingerprints in a database; receiving, by the processor from a querying party's system, at least one fingerprint that has been cryptographically hashed by the querying party's system; determining, by the processor, whether the received at least one fingerprint matches any of the artifact fingerprints stored in the database; and outputting, in plaintext form, the artifact containing a matched fingerprint.