Un programa de firma en programación de computadoras es un bloque corto de código fuente sin compilar que se adjunta al final de un correo electrónico u otra comunicación. La firma en una comunicación electrónica es un bloque de texto que se adjunta automáticamente a los mensajes salientes, a veces para identificar al usuario. Cuando se incluye un bloque de código en esta área, se conoce como programa de firma. La mayoría de los programas de firmas realizan funciones triviales que generan datos o información de una manera sorprendente para la brevedad del código real. Las limitaciones significan que un programa de firma no se compila, lo que requiere que un espectador curioso lo compile para ver los resultados, una tarea que requiere algunos conocimientos de programación, lo que significa que la mayoría de los programas de firma son vistos principalmente por aquellos dentro de la comunidad de programación.
Uno de los elementos de un programa de firma es la forma en que está escrito. En lugar de verse como un código de programación de computadora normal, a menudo se escribe de una manera abreviada muy no estándar mediante el uso de funciones, operadores y características del lenguaje que no se ven a menudo. Parte de la razón de esto es hacer que el código sea difícil de leer, por lo que el resultado del programa no es evidente, aunque también se puede hacer para proporcionar una apariencia que de alguna manera es única. El nombre del código que se ha escrito para que sea intencionalmente difícil de leer es código ofuscado.
El resultado común de un programa de firma podría ser el nombre de la persona que escribió el código o el nombre de la persona que envía el mensaje al que está adjunto. Las representaciones gráficas o basadas en texto de fórmulas matemáticas y operaciones recursivas también son populares. Si bien es posible casi cualquier salida, el código fuente generalmente se mantiene en menos de cuatro líneas, la longitud máxima tradicional de un archivo de firma.
El formateo real del código fuente puede ser parte del programa de firma, ya que sugiere la salida que podría producirse. A veces, esto se puede hacer organizando el código fuente para formar una imagen relacionada con la salida, o usando las letras y símbolos en el código para deletrear palabras. Esto es posible porque la mayoría de los compiladores de programación ignoran múltiples espacios y saltos de línea, y en su lugar miran solo los caracteres reales en una línea de código.
Un método adicional que se utiliza para afectar la longitud, el funcionamiento y, a veces, la apariencia del código en un programa de firma es el uso de macros. Las macros son una forma de asignar un fragmento de código informático válido a una secuencia de caracteres o símbolos más corta o alternativa. Cuando la macro se coloca posteriormente en el código fuente, el compilador la reemplaza con el código que representa. Esto no solo puede hacer que un programa de firma sea más corto, sino que, al usar macros con nombres engañosos o que incorporan otras macros, el programa puede volverse increíblemente difícil de leer.