A system, comprising: one or more computing devices (102, 110); a reference database storing reference information comprising a code signature corresponding to a software file; a signature generator implemented on the one or more computing devices and configured to: receive an original source file comprising source code; determine a programming language of the source code in the original source file; create an updated source file comprising a first portion of the original source file corresponding to at least one reserved keyword and/or key phrase of the identified programming language, and wherein a second portion of the original source file, separate from the first portion and not comprising the at least one reserved keyword, is omitted from the updated source file; replace one or more language keywords or key phrases with a representation in the updated source file to produce an encoded sequence, wherein the representation is a compact byte representation smaller in size than the corresponding language reserved keywords or key phrases generate a code signature based on content of the updated source file; and an analyzer implemented on the one or more computing devices and configured to: perform a comparison of the generated code signature with the code signature from the reference information stored in the reference database; identify the software file corresponding to a matching code signature based on the comparison; and create a list of identified software files corresponding to the matching code signature. one or more computing devices (102, 110); a reference database storing reference information comprising a code signature corresponding to a software file; a signature generator implemented on the one or more computing devices and configured to: receive an original source file comprising source code; determine a programming language of the source code in the original source file; create an updated source file comprising a first portion of the original source file corresponding to at least one reserved keyword and/or key phrase of the identified programming language, and wherein a second portion of the original source file, separate from the first portion and not comprising the at least one reserved keyword, is omitted from the updated source file; replace one or more language keywords or key phrases with a representation in the updated source file to produce an encoded sequence, wherein the representation is a compact byte representation smaller in size than the corresponding language reserved keywords or key phrases generate a code signature based on content of the updated source file; and an analyzer implemented on the one or more computing devices and configured to: perform a comparison of the generated code signature with the code signature from the reference information stored in the reference database; identify the software file corresponding to a matching code signature based on the comparison; and create a list of identified software files corresponding to the matching code signature. receive an original source file comprising source code; determine a programming language of the source code in the original source file; create an updated source file comprising a first portion of the original source file corresponding to at least one reserved keyword and/or key phrase of the identified programming language, and wherein a second portion of the original source file, separate from the first portion and not comprising the at least one reserved keyword, is omitted from the updated source file; replace one or more language keywords or key phrases with a representation in the updated source file to produce an encoded sequence, wherein the representation is a compact byte representation smaller in size than the corresponding language reserved keywords or key phrases generate a code signature based on content of the updated source file; and an analyzer implemented on the one or more computing devices and configured to: perform a comparison of the generated code signature with the code signature from the reference information stored in the reference database; identify the software file corresponding to a matching code signature based on the comparison; and create a list of identified software files corresponding to the matching code signature. perform a comparison of the generated code signature with the code signature from the reference information stored in the reference database; identify the software file corresponding to a matching code signature based on the comparison; and create a list of identified software files corresponding to the matching code signature.