ios - 在 Swift 中打乱字符串

标签 ios swift hash cryptography

我想打乱一个包含用户 UID 的字符串,因此无法使用数据库对其进行跟踪。 我还希望这应该是一个一致的模式,所以不会随机打乱字母 - 如果用户更改设备,该函数的结果应该仍然相同。

但是,我不想添加 CryptoSwift就是为了这个

这只是为了提高可读性,同时也是为了确保相同的用户发帖基本上是在数据库中的相同位置。所以不会有与此相关的安全问题。它只会用于匿名化一些数据。

UID 可能如下所示 "0bb0fca0-1e89-429f-901a-1413894d9f59"

我怎样才能以最好的方式实现这一点?

我正在考虑添加素数或使用某种“黑匣子”来仅向函数发送一个字符串并取回另一个字符串。字符串的大小或应该如何完成并不重要

最佳答案

我找到了一个很好的解决方案。有一个人制作了一个没有任何第三方库的单个文件 MD5 转换器,名为 MD5 Digest

那么这个库就可以这样使用了

let input = "0bb0fca0-1e89-429f-901a-1413894d9f59"
let md5 = input.utf8.md5
print(md5)

这给出了结果:

4a89b58cb43b3eecd289c1d093b48bd0

这正是我想要的,可以重新创建的东西,但仍然根据我发送的字符串得出用户无法连接到发送的字符串的结果。

关于ios - 在 Swift 中打乱字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50018703/

相关文章:

ios - 如何从动态创建的 Storyboard属性为 nil 的 UIViewController 中执行 SegueWithIdentifier()

java - 比较hashCode实现

ruby-on-rails - 是否有更好的 Ruby 或 Rails 习惯用法来检查嵌套哈希中是否存在值?

ios - 不使用分屏调用 Swift viewWillTransitionToSize

ios - 转换后关闭 ViewController 以释放内存

swift - 我如何让两件事相互碰撞,然后从场景中移除一个?

swift - 创建节点集的性能问题

ios - 键盘显示额外空间 Swift

algorithm - 布隆过滤器及其多个哈希函数

ios - UITabBarController canBecomeFirstResponder 方法未被调用