首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何正确匿名数据,如果哈希是不够的?

如何正确匿名数据,如果哈希是不够的?
EN

Security用户
提问于 2014-06-25 06:28:06
回答 4查看 11.4K关注 0票数 9

今天,布鲁斯·施耐尔的博客ArsTechnica上都有关于纽约市如何发布关于出租车司机、他们的行程等信息的新闻。

基本上,敏感信息只是简单的MD5散列。由于输入是有限的(最多3个数字,3个字母),所以很容易做出一些蛮力攻击:生成所有可能的组合,然后进行回溯。

考虑到信息的性质(很小的输入,以便于生成所有组合),如何才能适当地匿名这些数据?

我想到的一些办法是:

  • 通过默默无闻的安全性(使用“秘密”次数的迭代)只是通过默默无闻的安全性。
  • 添加一个普通的,独特的盐,会增加0%的蛮力:简单的附加盐和做.
  • 每个用户附加一个唯一的盐分,会增加蛮力,但不会太大:取盐,计算每个盐的3位数3个字母。

我们能做些什么?

EN

回答 4

Security用户

回答已采纳

发布于 2014-06-25 06:46:42

您可以使用标记化。这意味着您创建了一个独立的数据库,其中包含随机生成的ID,映射到3个数字和3个字母。然后插入令牌而不是真正的标识。

另一个选项,如果您不需要将数据映射回,您可以使用一个HMAC (哈希算法)与一个长随机产生的秘密。如果没有秘密,您就不能野蛮地使用原始ID,即使它们仅由一个字符组成。

使用HMAC实际上是使用“秘密盐”的正确方法(在密码学中,盐实际上从来不被认为是秘密)。

票数 15
EN

Security用户

发布于 2014-06-25 14:24:31

不释放数据的方法是不释放数据。

标记化不会很好地工作,因为我所要做的就是知道在任何地方和什么时候驱动程序是什么地方,什么时候知道驱动程序,然后我就知道驱动程序的令牌了。

如果你不想让我搞清楚这一点,那就不要以任何形式发布这些数据。

票数 4
EN

Security用户

发布于 2014-06-25 06:42:31

如果输入是如此有限,您将始终存在这个问题。

唯一的解决办法是增加更多的“东西”,使输入多样化。就像你说的,盐是一种选择,但是如果它被破坏了,它就不会有多大的好处。同样的情况也适用于使用秘密密钥或密码。

我想说的是,在这个具体的案例中,答案是连接更多关于出租车的信息。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Nonce | Driver Name | Driver's License | License Plate | ...

基本上是一个更丰富的输入,以补偿容易的野蛮强迫的车牌。哦,很明显,使用加密安全的散列函数:-)

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/61875

复制
相关文章
利用 Resetter 将 Ubuntu 系发行版重置为初始状态
这个 Resetter 工具可以将 Ubuntu、 Linux Mint (以及其它基于 Ubuntu 的发行版)返回到其初始配置。
会长君
2023/04/26
1.3K0
类变量与对象变量
# 类变量与对象变量 # 代码 # coding=UTF-8,类变量与对象变量 class Robot: """表示有一个带有名字的机器人。""" # 一个类变量,用来计数机器人的数量 population = 0 # 这是一个类变量,属于Robot类 def __init__(self, name): # name变量属于一个对象(通过self分配),因此它是一个对象变量 """初始化数据""" self.name = name
benym
2022/07/14
9280
Python面向对象编程-类和对象-实例变量和类变量
实例变量是指属于特定对象的变量。每个类的实例都具有自己的实例变量,它们的值可以不同。在上面的示例中,Person 类的 name 和 age 属性都是实例变量,因为它们属于特定的 Person 对象。
玖叁叁
2023/04/19
8470
C++自定义类的对象对于其私有变量的访问
以下语法规则是不言自明的: 在自定义类A的成员函数中,可以对该类的私有成员变量进行赋值等操作,但是在类定义之外所声明的A类的对象aobj是不可以直接访问A类的私有变量的,只有通过在A类的成员函数中开放访问其私有变量的接口,对象aobj才可以对私有变量进行操作。
大忽悠爱学习
2021/11/15
1.5K0
C++ 类成员变量初始化
本文是对《Effective C++》的”Item 4: Make sure that objects are initialized before they’re used”的笔记和验证。
零式的天空
2022/03/08
9470
C++ 类成员变量初始化
本文是对《Effective C++》的”Item 4: Make sure that objects are initialized before they’re used”的笔记和验证。
mzlogin
2020/04/14
2.3K0
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
" 匿名对象 " 的 作用域 仅限于其所在的 表达式 , 这句表达式 执行完毕后 , 匿名对象 自动销毁 ;
韩曙亮
2023/10/15
3960
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )
使用 class 关键字 , 定义 Dart 类 , 所有的 Dart 类默认继承 Object 类 , 其中定义两个变量 , 定义一个标准的构造方法 , 构造方法中使用 this.name 表示自有参数 ;
韩曙亮
2023/03/28
2K0
C++_类型&变量&类和对象
数据类型(type) 简称类型 是具有相同特征的数据的集合,是一个抽象概念 C++的数据类型主要分为三种: 原始数据类型:内置或预定义的数据类型,用户可以直接使用它们声明变量。例如:int,char,float,bool等 整数、字符、布尔型、浮点、双浮点数、void、宽字符 等 派生数据类型:从原始或内置数据类型派生的数据类型 函数 数组 指针 引用 用户自定义类型:这些数据类型由用户自己定义 类 结构体 union:在并集中,所有成员共享相同的内存位置 枚举类型 typedef:为 复杂的声明 定义 简
用户10551528
2023/05/09
3630
C++_类型&变量&类和对象
java类和对象——变量赋值方法
此处的set和get的方法可以用 atl + insert 选择Getter and Setting实现
小雨的分享社区
2022/10/26
1.1K0
Python 面向对象编程:类、对象、初始化和方法详解
Python 是一种面向对象的编程语言。在 Python 中,几乎所有东西都是对象,都具有其属性和方法。
小万哥
2023/10/25
3710
Python 面向对象编程:类、对象、初始化和方法详解
关于类的对象创建与初始化
今天,我们就来解决一个问题,一个类实例究竟要经过多少个步骤才能被创建出来,也就是下面这行代码的背后,JVM 做了哪些事情? Object obj = new Object(); 当虚拟机接受到一条 new 指令时,首先会拿指令后的参数,也就是我们类的符号引用,于方法区中进行检查,看是否该类已经被加载,如果没有则需要先进行该类的加载操作。 一旦该类已经被加载,那么虚拟机会根据类型信息在堆中分配该类对象所需要的内存空间,然后返回该对象在堆中的引用地址。 一般而言,虚拟机会在 new 指令执行结束后,显式调
Single
2018/04/17
8230
关于类的对象创建与初始化
关于类的对象创建与初始化
今天,我们就来解决一个问题,一个类实例究竟要经过多少个步骤才能被创建出来,也就是下面这行代码的背后,JVM 做了哪些事情?
Single
2018/04/10
1.7K4
关于类的对象创建与初始化
vector>初始化_vector如何重置
注意:vector<int> a(nums.begin()+1, nums.end()-2);中a包含nums.begin()+1,不包含nums.end()-2,也就是包含的区间是左闭右开区间
全栈程序员站长
2022/09/29
8870
Mysql重置初始密码的方法
以下命令行代码均在管理员模式下操作 命令行exe文件目录:C:\Windows\System32\cmd.exe -> 右键 -> 以"管理员模式运行"
红目香薰
2022/11/29
2.5K0
Mysql重置初始密码的方法
Xcode 恢复初始状态
我想问题可以是出在最新的 Xcode 11.2.1 版本上,我先下载一个 Xcode 10.3 版本看看能不能运行。
iOSDevLog
2019/12/02
2.4K0
以呼叫中心为例解释如何将有状态设计转换成无状态设计?
在日常开发中,我们经常会到"有状态"服务设计与"无状态"服务设计,何谓“无状态”?
菩提树下的杨过
2020/12/08
1.4K0
python--初始面向对象:类的相关知识,对象的相关知识
当然很简单,两个角色,1个人物,1个boss,且人物和boss都有不同的技能,比如人物用觉醒技能秒了boss,掉了xx装备,boss用大招秒了人物,人物死亡,怎么描述这种不同的人物和他们的功能呢
py3study
2018/08/02
4100
Python面向对象中的类变量,实例变量怎么来理解?
前几天在Python最强王者交流群有个叫【Chloe】的粉丝问了一个类变量和实例变量的问题,这里拿出来给大家分享下,一起学习下。
前端皮皮
2022/08/17
1.7K0
Python面向对象中的类变量,实例变量怎么来理解?
点击加载更多

相似问题

如何将列表重置为其初始状态

10

如何将所有变量重置为初始状态?

22

如何将react通量存储重置为其初始状态?

14

如何将远程git分支重置为其初始状态

213

将对象重置为初始状态

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文