Soluciones de Seguridad de Datos en C++ y Python
Tokenizado
Convierte datos originales en tokens únicos que no revelan información real.
Clase Tokenizado
#ifndef TOKENIZADO_H
#define TOKENIZADO_H
#include
using namespace std;
class Tokenizado { // Clase para tokenizar
public:
string tokenizarString(string dato); // Tokeniza un string
void tokenizarArchivo(const string &inputFileName, const string &outputFileName, char mascara); // Tokeniza un token para un archivo
};
#endif
Ejemplos de Uso
Tokenizar String
string Tokenizado::tokenizarString(string dato) {
string token = "";
int longitud = 16;
string alphanum =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
// token aleatorio
for (int i = 0; i < longitud; i++) {
token += alphanum[rand() % alphanum.length()];
}
return token;
}
Resultado
El string "Juan Perez" tokenizado se convierte en "1A2B3C4D5E6F7G8H9".
Tokenizar Archivo
void Tokenizado::tokenizarArchivo(const string &inputFileName, const string &outputFileName, char mascara) {
ifstream entrada(inputFileName);
ofstream salida(outputFileName);
if (!entrada.is_open()) {
cerr << "Error abriendo el archivo de entrada: " << inputFileName << endl;
return;
}
// Leer el contenido del archivo
string linea, contenido;
while (getline(entrada, linea)) {
contenido += linea + "\n";
}
entrada.close();
// Tokenizar el contenido
string contenidoTokenizado = tokenizarString(contenido);
// Guardar el contenido tokenizado en el archivo de salida
if (!salida.is_open()) {
cerr << "Error abriendo el archivo de salida: " << outputFileName << endl;
return;
}
salida << contenidoTokenizado;
salida.close();
cout << "El contenido tokenizado se ha guardado en " << outputFileName << endl;
}
Resultado
archivo.txt: Datos de persona Juan Perez juanperez@gmaillcom 1234567890123456 Transferencia
archivo_tokenizado.txt: fa37JncCHryDsbza