사용자가 암호화 할 열을 선택할 수있는 반짝이는 앱을 만들려고합니다. 데이터를 암호화 할 열을 선택하면 각 행의 값이 이후 실행에서 항상 동일해야합니다. 는 똑같은. 나는. 고객 이름 = "John"이면이 프로세스를 실행할 때 항상 "A"를 얻습니다. 고객 이름이 "Jon"으로 변경되면 "C"를 얻을 수 있지만 "John"으로 다시 변경하면 다시 A를 얻습니다. 이것은 분석을 위해 민감한 데이터를 '마스크'하는 데 사용됩니다.다이제스트 - 하나만 수정하면 모든 행에 다른 값 가져 오기
또한 누군가가 나중에 사용할 키를 저장하여 이러한 열을 '암호 해독'하는 방법에 대해 의견을 낼 수 있다면 ... 감사하겠습니다.
I이 (필요 다이제스트 라이브러리)을 달성하려있어 방법의 단순한 버전 :
test <- data.frame(CustomerName=c("John Snow","John Snow","Daffy Duck","Daffy Duck","Daffy Duck","Daffy Duck","Daffy Duck","Joe Farmer","Joe Farmer","Joe Farmer","Joe Farmer"),
LoanNumber=c("12548","45878","45796","45813","45125","45216","45125","45778","45126","32548","45683"),
LoanBalance=c("458463","5412548","458463","5412548","458463","5412548","458463","5412548","458463","5412548","2484722"),
FarmType=c("Hay","Dairy","Fish","Hay","Dairy","Fish","Hay","Dairy","Fish","Hay","Dairy"))
test[,1] <- sapply(test[,1],digest,algo="sha1")
출력 예 :
CustomerName LoanNumber LoanBalance FarmType
1 5c96f777a14f201a6a9b79623d548f7ab61c7a11 12548 458463 Hay
2 5c96f777a14f201a6a9b79623d548f7ab61c7a11 45878 5412548 Dairy
3 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45796 458463 Fish
4 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45813 5412548 Hay
5 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45125 458463 Dairy
6 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45216 5412548 Fish
7 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45125 458463 Hay
8 b0db86a39b9617cef61a8986fd57af7960eec9f4 45778 5412548 Dairy
9 b0db86a39b9617cef61a8986fd57af7960eec9f4 45126 458463 Fish
10 b0db86a39b9617cef61a8986fd57af7960eec9f4 32548 5412548 Hay
11 b0db86a39b9617cef61a8986fd57af7960eec9f4 45683 2484722 Dairy
수정 dataframe (요 제거 'H') :
test <- data.frame(CustomerName=c("Jon Snow","Jon Snow","Daffy Duck","Daffy Duck","Daffy Duck","Daffy Duck","Daffy Duck","Joe Farmer","Joe Farmer","Joe Farmer","Joe Farmer"),
LoanNumber=c("12548","45878","45796","45813","45125","45216","45125","45778","45126","32548","45683"),
LoanBalance=c("458463","5412548","458463","5412548","458463","5412548","458463","5412548","458463","5412548","2484722"),
FarmType=c("Hay","Dairy","Fish","Hay","Dairy","Fish","Hay","Dairy","Fish","Hay","Dairy"))
test[,1] <- sapply(test[,1],digest,algo="sha1")
새로운 출력 :
,451,515, CustomerName LoanNumber LoanBalance FarmType
1 2cabeabb3b50e04d3b46ea2c68ab12c7350cd87f 12548 458463 Hay
2 2cabeabb3b50e04d3b46ea2c68ab12c7350cd87f 45878 5412548 Dairy
3 b0187b6ff2322fa86004d4d22cd479f3cdc345d2 45796 458463 Fish
4 b0187b6ff2322fa86004d4d22cd479f3cdc345d2 45813 5412548 Hay
5 b0187b6ff2322fa86004d4d22cd479f3cdc345d2 45125 458463 Dairy
6 b0187b6ff2322fa86004d4d22cd479f3cdc345d2 45216 5412548 Fish
7 b0187b6ff2322fa86004d4d22cd479f3cdc345d2 45125 458463 Hay
8 2127453066c45db6ba7e2f6f8c14d22796c3fd54 45778 5412548 Dairy
9 2127453066c45db6ba7e2f6f8c14d22796c3fd54 45126 458463 Fish
10 2127453066c45db6ba7e2f6f8c14d22796c3fd54 32548 5412548 Hay
11 2127453066c45db6ba7e2f6f8c14d22796c3fd54 45683 2484722 Dairy
내가 기대 한 것이 무엇 : 이것이 어떻게 작동하는지 내가
CustomerName LoanNumber LoanBalance FarmType
1 2cabeabb3b50e04d3b46ea2c68ab12c7350cd87f 12548 458463 Hay
2 2cabeabb3b50e04d3b46ea2c68ab12c7350cd87f 45878 5412548 Dairy
3 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45796 458463 Fish
4 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45813 5412548 Hay
5 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45125 458463 Dairy
6 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45216 5412548 Fish
7 10bf345ab114c20df2d1eedbbe7e7cd6b969db05 45125 458463 Hay
8 b0db86a39b9617cef61a8986fd57af7960eec9f4 45778 5412548 Dairy
9 b0db86a39b9617cef61a8986fd57af7960eec9f4 45126 458463 Fish
10 b0db86a39b9617cef61a8986fd57af7960eec9f4 32548 5412548 Hay
11 b0db86a39b9617cef61a8986fd57af7960eec9f4 45683 2484722 Dairy
를 오해하고 있는가? 동일한 논리를 여러 열에 적용하면 변경되지 않은 열에 대해 동일한 값을 얻을 수 있지만 수정 된 값이있는 열에 대해서는 문제가 지속됩니다. 나는 내 사프리 기능이 동일한 결과로 문제가되지 않도록 다이제스트 기능을 Vectorize하려고 시도했다. 어떤 아이디어?