10. 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, at least one fingerprint; determining, by the processor, whether the received at least one fingerprint matches any of the artifact fingerprints stored in the database; and outputting an indication of an artifact containing a matched fingerprint, wherein the determination of whether the received at least one fingerprint matches any of the stored artifact fingerprints comprises generating, by the processor, a plurality of query vectors from the at least one cryptographically hashed shingle; generating, by the processor, a plurality of artifact vectors from the artifact fingerprints; performing, by the processor, a cosine distance calculation using the plurality of query vectors and the plurality of artifact vectors to generate a plurality of distance scores; and selecting, by the processor, a vector of the plurality of artifact vectors having a lowest distance score.
10. 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, at least one fingerprint; determining, by the processor, whether the received at least one fingerprint matches any of the artifact fingerprints stored in the database; and outputting an indication of an artifact containing a matched fingerprint, wherein the determination of whether the received at least one fingerprint matches any of the stored artifact fingerprints comprises generating, by the processor, a plurality of query vectors from the at least one cryptographically hashed shingle; generating, by the processor, a plurality of artifact vectors from the artifact fingerprints; performing, by the processor, a cosine distance calculation using the plurality of query vectors and the plurality of artifact vectors to generate a plurality of distance scores; and selecting, by the processor, a vector of the plurality of artifact vectors having a lowest distance score. 11. The method of claim 10 , further comprising: determining, by the processor, a median cosine distance for the plurality of artifact vectors, wherein the median cosine distance is used to set a threshold against which the lowest distance score is compared to determine whether the vector of the plurality of artifact vectors having the lowest distance score is a match of one or more of the query vectors.