データの暗号化
68 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
syota papa
il 28 Ott 2024 alle 23:06
Commentato: syota papa
il 29 Ott 2024 alle 14:16
データを暗号化する方法を教えてください。
A列 B列 C列
1 0 花子さん
1 2 太郎さん
1 1 次郎君
というcsvデータのC列について、何らかの方法で暗号化して
A列 B列 C列
1 0 *********
1 2 *********
1 1 *********
という風に第3者がわからないデータに加工し
A列 B列 C列
1 0 花子さん
1 2 太郎さん
1 1 次郎君
自分だでは、上記のように復元する方法はありますでしょうか。
0 Commenti
Risposta accettata
Kojiro Saito
il 29 Ott 2024 alle 8:51
AES.mをダウンロードして、secretKeyの部分をご自身の好きなパスワードに変更して使ってみてください。
% 読み込むCSVファイル
filename = 'data.csv';
opts = detectImportOptions(filename, 'TextType', 'string'); % 文字列をstring型で読み込む
data = readtable(filename, opts);
% パスワードを任意の文字に変更する
secretKey = "password";
algorithm = "SHA-1";
aes = AES(secretKey, algorithm);
% テーブルのHashedカラムに3列目の文字列をハッシュ値にする
data.Hashed = arrayfun(@aes.encrypt, data.Var3);
% 元の3列目は書き込むテーブルから削除する
tableToWrite = removevars(data, 3);
% 第3者に提供するCSVファイルを作成。ハッシュ値には記号も含まれるため、カンマ区切りではなくタブ区切りにする
writetable(tableToWrite, "out.csv", "Delimiter", "\t")
%% ハッシュ値が含まれるCSVファイルからデータを復元
t = readtable("out.csv");
secretKey = "password"; % ハッシュ化したときと同じパスワード
algorithm = "SHA-1";
aes = AES(secretKey, algorithm);
% Hashedカラムから元のデータを復元してName列に入れる
t.Name = arrayfun(@aes.decrypt, t.Hashed);
11 Commenti
Kojiro Saito
il 29 Ott 2024 alle 13:23
R2022aのアップデートでWindowsでのシステムエンコーディングがUTF-8になったのですが、R2020bだと日本語ではShift-JISのエンコーディングが使われ、AES.mのdecrypt関数の中で文字化けを起こしていたようです。エンコーディングが原因でしたので、対処された方法で問題ありません。
Più risposte (0)
Vedere anche
Categorie
Scopri di più su ビッグ データの処理 in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!