c++|K-匿名算法实现-创新互联

什么是K-匿名?

K-匿名(K-Anonymity)是Samarati和Sweeney在1998年提出的技术,该技术可以保证存储在发布数据集中的每条个体记录对于敏感属性不能与其他的K-1个个体相区分,即K-匿名机制要求同一个准标识符至少要有K条记录,因此观察者无法通过准标识符连接记录。

创新互联秉承实现全网价值营销的理念,以专业定制企业官网,成都网站设计、成都网站制作、外贸网站建设,小程序制作,网页设计制作,手机网站开发,营销型网站建设帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。

K-匿名的具体使用如下:隐私数据脱敏的第一步通常是对所有标识符列进行移除或是脱敏处理,使得攻击者无法直接标识用户。但是攻击者还是有可能通过多个准标识列的属性值识别到个人。攻击者可能通过(例如知道某个人的邮编,生日,性别等)包含个人信息的开放数据库获得特定个人的准标识列属性值,并与大数据平台数据进行匹配,从而得到特定个人的敏感信息。为了避免这种情况的发生,通常也需要对准标识列进行脱敏处理,如数据泛化等。例如下所示:

输入:

输出:

经过泛化后,有多条纪录的准标识列属性值相同。所有准标识列属性值相同的行的集合被称为相等集。

K-匿名的缺陷:

K-匿名计数并不关心敏感信息,只关心QI(准标志符),其对敏感信息攻击没有任何修改,这样会存在问题,假设得到的分组中所有记录的某一信息是一样的,则如果定位到该分组,就可以知道该分组中该信息,这样就失去隐私了,因为只要知道是否属于这个分组就能知道该信息,这是一个缺陷。

算法实现

如果想实现上图输出的效果,只需做一个排序输出即可。由于时间原因,只实现了K-匿名算法

#include#define NUM 50  //总容量

//K—匿名算法
//输入数据,使用数组存值
//进行泛化处理
void showMenu(){
  std::cout<<"K-匿名算法"<num;
    //写入数据
    for (int i = 0; i< num; ++i) {
        //依次写入姓名 性别 年龄 编号 疾病
        std::cout<<"请依次写入第"<>Name[i]>>Sex[i]>>Age[i]>>Zip[i]>>Disease[i];
        if(i+1 == num){
            std::cout<<"输入完成!"<>select;
        switch (select) {
            case 1:
                std::cout<< "name\t\tsex\t\tage\t\tzip\t\tdisease"<< std::endl;
                //显示写入数据内容
                for (int i = 0; i< num; ++i) {
                    //输出
                    std::cout<教程&演示:

首先,你需要将我们代码部分copy到你的本地编译器中。然后直接编译运行即可。需要注意的是直接根据步骤逐步进行输入即可正常运行。需要注意以下几点事项:

1.输入的病人编号要6位

2.由于期末,时间比较紧张,对于很多细节方面还不完善。大家多多担待

3.实现的源码我改变了数组的数据类型,所以对于排序过程的实现,可以在我源代码上修改。但不能直接加入排序的步骤。

1.写入数据:

2. 显示输入:

3.泛化处理:

4.退出程序:


如果文章对你有帮助的话,请多多支持哦!

创作不易,为了作者能有更好的作品。希望大家能多多点赞+评论+收藏!!!!!

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:c++|K-匿名算法实现-创新互联
本文URL:http://azwzsj.com/article/dpojgh.html