Android 中的 MD5 哈希

2023-12-19

我有一个简单的 Android 客户端,需要与一个简单的 C# HTTP 侦听器“对话”。我想通过在 POST 请求中传递用户名/密码来提供基本级别的身份验证。

MD5 哈希在 C# 中是微不足道的,并且为我的需求提供了足够的安全性,但我似乎无法找到如何在 android 端执行此操作。

编辑:只是为了解决有关 MD5 弱点的担忧 - C# 服务器在我的 Android 客户端用户的 PC 上运行。在许多情况下,他们将在自己的 LAN 上使用 wi-fi 访问服务器,但他们可能会选择从互联网访问服务器,风险自负。此外,服务器上的服务需要使用 MD5 传递给我无法控制的第三方应用程序。


Here http://www.kospol.gr/204/create-md5-hashes-in-android/是一个您可以使用的实现(已更新以使用更多最新的 Java 约定 -for:each loop, StringBuilder代替StringBuffer):

public static String md5(final String s) {
    final String MD5 = "MD5";
    try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest
                .getInstance(MD5);
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuilder hexString = new StringBuilder();
        for (byte aMessageDigest : messageDigest) {
            String h = Integer.toHexString(0xFF & aMessageDigest);
            while (h.length() < 2)
                h = "0" + h;
            hexString.append(h);
        }
        return hexString.toString();

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return "";
}

尽管不建议在涉及基本安全级别(MD5)的系统中使用它。被认为已损坏并且很容易被利用 http://www.mscs.dal.ca/~selinger/md5collision/),有时对于基本任务来说就足够了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的 MD5 哈希 的相关文章

  • 在 Android 模拟器上运行完整的 Android 手机 ROM

    正如标题所说 是否可以在 Android 模拟器中运行完整的 Android 设备 ROM 是的 你可以 但让它 100 工作可能很困难 大多数 ROM 都包含其运行硬件的特定驱动程序 我并不是 100 全力以赴 但可以尝试以下步骤 创建
  • Android:java.lang.OutOfMemoryError:

    我在 Android 上开发了一个使用大量图像的应用程序 可绘制文件夹中有很多图像 比如说超过 100 张 我正在开发图像动画应用程序 我使用 imageview 来显示 GIF 图像 我使用了将 gif 图像分割成多个 PNG 格式图像的
  • 由于现有相机用户,相机“0”的手电筒不可用

    我想创建一个应用程序 它有一个用于录制视频的按钮和另一个单独的切换按钮 用于在录制视频期间打开闪光灯 我已经使用camera2 API为最近的androids构建了相机应用程序 可以通过图像按钮访问 我将火炬模式设置为切换按钮 但这根本不起
  • 在android Gridview中合并行和列

    我正在android中做一个图像查看页面 我需要在某些地方合并行 在某些地方合并列 我们可以在gridview中做到这一点吗 如果我们选择任何合并图像 则应选择整个图像视图 请任何人告诉我一个建议 提前致谢 Try 非对称网格视图 http
  • Android 位置 API:获取提供商状态

    在 Android 中获取位置提供商状态的最佳方式是什么 当注册 LocationListener 以进行位置更新时 onStatusChanged String provider int status Bundle extras 每当状态
  • 如何使用onDraw(Canvas)获取WebView的位图快照(Android)

    我曾经使用 capturePicture 方法来制作 WebView 的快照 此方法在 API 级别 19 中已弃用 该文档说 使用 onDraw Canvas 获取 WebView 的位图快照 但我真的不知道它是什么意思 你能教我如何解决
  • 如何检查 Android 设备是否在线

    我的服务器不断检查我的 Android 应用程序是否在线 请问我可以在我的android应用程序上执行哪些操作 创建一个名为 isNetworkAvailable 的帮助器方法 该方法将根据网络是否可用返回 true 或 false 它看起
  • adb 今天无法连接到 VirtualBox 中的 Android-x86

    我在 VirtualBox 中成功安装了 Android x86 v3 2 eeepc 一段时间 这是帮助我在 Android 上调试 USB 主机应用程序的好方法 此类配置的安装是 安装VirtualBox 将 Android x86 v
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Android 和 Honeycomb - 如何使用 SDK 13 拥有菜单图标而不需要“操作栏”

    我想最大限度地利用 Honeycomb 应用程序的屏幕 由于屏幕底部已经被 始终打开 的项目所困 我想在该空间中添加一个菜单按钮 而不是牺牲更多的屏幕空间 在顶部放置一个 操作栏 我怎样才能做到这一点without降级到 API 10 或更
  • 如果未安装应用程序,深层链接将重定向到 Play 商店

    我在我的应用程序中使用深度链接的概念 我真正想要的是 当我共享我的应用程序中的链接时 它工作正常 它会转到我想在我的应用程序中打开的活动 但问题是当用户没有这个时应用程序此链接通过手机浏览器打开 显示错误 未找到 但如果未安装应用程序 我想
  • webview 中的 android 移动 Twitter 页面无法打开?

    我正在尝试打开以 https 开头的 Twitter 页面webview在安卓中 但它没有打开 并且持续加载时出现黑屏 屏幕截图如下 Edit 在主网络视图中我有 Twitter 页面的链接https twitter com mytwitt
  • RecyclerView 单击将数据传递到新活动

    我正在制作一个包含三个选项卡的应用程序 每个选项卡都有一个带有两个文本的 recyclerview 我希望用户能够单击任何 recyclerview 项目 并且该项目中的文本应传递到新活动 这是应用程序外观的图像 https i stack
  • 作为 ViewPager 的一部分更新 ListFragment 中的数据

    我在 Android 中使用 v4 兼容性 ViewPager 我的 FragmentActivity 有一堆数据 这些数据将以不同的方式显示在我的 ViewPager 的不同页面上 到目前为止 我只有同一个 ListFragment 的
  • 如何在移动应用程序上连接到服务器?

    我是移动应用程序的新手 我基本上来自网络开发平台 我只是在玩 App Framework LungoJS Jquery Mobile kendo 等移动框架 以获得该垂直领域的一些知识 我正在开发的应用程序仍然处于 UI 级别 我所需要的只
  • Dart/Flutter 如何编译到 Android?

    我找不到任何具体的资源 Dart 是否被编译到 JVM 或者 Google 的团队是否编译了 Dart VM 以在 JVM 上运行 然后在 JVM 内的 Dart VM 中运行 Dart 前者更有意义 并且符合 无桥 的口号 但后者似乎更符
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • 使用bindService启动IntentService时是否应该调用onHandleIntent?

    我的服务延伸IntentService当它开始时startService onHandleIntent被叫 但是 当服务启动时bindService 我确实需要绑定 onHandleIntent没有被调用 Should onHandleIn
  • 带有不透明导航栏的深色文本透明状态栏

    等等 这不是重复的 类似的问题已被问到here https stackoverflow com questions 38025865 android fully transparent status bar with non transpa
  • 连接到具有相同 SSID 的最强接入点(信号最强的接入点)

    我正在编写一个程序来始终连接到最强的接入点 我的意思是信号最强的接入点 首先 我扫描所有可用的 WiFi 网络 然后限制它们仅查看具有相同 SSID 的网络 这样我就可以看到一个网络的所有AP 当我连接到该网络时 它没有连接到最强的信号 但

随机推荐

  • 无法在 Spring Web 服务中反序列化 START_ARRAY 令牌之外的对象实例

    我目前在 Android 上连接到我的网络服务时遇到问题 我使用 jackson core databind annotation 2 2 4 和 Spring RESTWebService 如果我从浏览器访问 URL 我可以看到 JSON
  • 为什么(begin)在Scheme中有效?

    我在 Racket 和 Chez Scheme 中进行了测试 发现 begin 是可以接受的 同时 define a begin 不是 例如我得到的球拍 gt begin gt define a begin stdin 56 10 begi
  • 使用具有自定义连接对象的 EF 存储库?

    我被困在 EF 6 中 而且文档很少 现在一天都没有解决这个问题 我尝试在我们拥有的数据库存储库上使用 Code First 由于复杂的初始化我must使用我自己的工厂方法来初始化上下文子类 我must放入我自己的 sql 连接 或者创建我
  • 冒充标准用户

    我正在尝试创建一个正在运行的进程 该进程被提升为使用标准用户令牌重新启动资源管理器 我所做的是首先以管理员身份运行主进程 然后拍摄运行的快照 if Process32First hSnapshot pe32 do if wcsicmp pe
  • 控制 r Shiny 中传单中 popupImage 的大小

    我很难控制图像的大小popupImage 地图视图包 下面是一个可重现的闪亮示例 其中我有一个带有弹出窗口的标记 当我设置width 300 弹出窗口显示正确 但我想显示更大的图像 宽度 300 https i stack imgur co
  • Catalyst“SwiftUI.AccessibilityNode”不是已知的可序列化元素

    我使用 Xcode 11 1 创建了一个新的 iOS 单页应用程序 包括 SwiftUI 并启用了 Mac Catalyst 在我的 Mac 当然是 macOS 10 15 上运行新项目后 在窗口上点击一次后出现以下错误 2019 10 1
  • ASP-Net MVC5 Crystal Reports:系统找不到指定的路径

    有什么建议么 Code ReportDocument rpt new ReportDocument rpt Load Server MapPath CrystalReports P Order rpt TableLogOnInfo logo
  • 有没有关于 Spanned 和 Spannable 文本的示例

    我正在努力使用 EditText 和 Spannable 文本对象 这些天 我已经阅读了 API 文档大约十次 即使我不确定我是否理解正确 所以我正在寻找一种示例来展示如何使用 EditText 和 Spannable 由于您没有指定您无法
  • 如何修改Imagenet Caffe模型?

    我想修改 ImageNet caffe 模型 如下所述 由于时间网络的输入通道数与此不同 空间网络 20 vs 3 我们对 ImageNet 模型滤波器进行平均 先跨过通道一层 然后复制平均结果 20 时间网络的初始化 我的问题是如何才能达
  • 在 Google Chrome 中使用 MediaStream API 更改 FocusMode 不起作用

    在 Google Chrome 浏览器中 我能够使用以下方式实时获取连接的 USB 摄像头的实时信息 获取用户媒体 API 我有一个滑块可以更改亮度值 效果很好 我还希望 focusMode 从连续的 to manual 相机始终以连续对焦
  • 仅将 jetty url-pattern 与根目录匹配

    我只想用密码保护 Jetty Web 应用程序的上下文路径上的根目录 我的上下文路径是 MyApp 所以我需要密码才能访问 http localhost 8080 MyApp 但不适用于 http localhost 8080 MyApp
  • 如何在 TestCafe 中等待元素消失?

    当我需要等待元素变得可见时 我可以简单地将选择器作为函数调用 如下所示 await element with visibilityCheck true 但我怎样才能等待一个元素消失呢 要等待元素消失 您可以使用我们内置的断言等待机制 请参见
  • 找到将小数转换为整数的公共乘数的算法

    我有一个可能最多有 8 位小数的数字数组 我需要找到可以将它们相乘的最小公共数 以便它们都是整数 我需要这个 以便所有原始数字都可以乘以相同的比例 并由仅处理整数的密封系统进行处理 然后我可以检索结果并将它们除以公共乘数以获得相对结果 目前
  • geom_text 在所有方面写入所有数据

    我将 ggplot 与facet grid 一起使用 我想在每个方面指示每个方面的观察数量 我遵循许多网站上提供的示例 但是当我让它写任何东西时 它会在所有四个图上将所有四个观察数字写在彼此之上 这里是 geom text 图层命令 geo
  • macOS SwiftUI 表超过 10 列?

    我尝试添加 Group 技巧以在 Table 视图中获取超过 10 个元素 但是无法编译 就像有超过 10 个元素没有组一样 var body some View Table viewModel tableArrayOfStructs so
  • Mysql 连接器花费 50% 的时间在 com.mysql.jdbc.util.ReadAheadInputStream.fill()

    我正在分析使用 Spring Hibernate 和 mysql java connector 的应用程序 VisualVM显示超过50 的CPU时间花费在com myql jdbc utils ReadAheadInputStream f
  • Android sqlite 多线程

    我正在编写一个 Android 应用程序 使用sqlite 有多种活动和一项服务 我从多个线程使用数据库 它完美地工作在Android 2 X 但是一旦我运行它Android 3 X它总是抛出这个错误并且Force Close 05 04
  • 将自定义方法集成到 LINQ to Entities 查询中

    我有一个自定义方法 可以对一组数据执行一些计算 private int GetPercentages int OriginalValue int TotalValue var newValue int Math Round decimal
  • 刷新Core Data数据库的正确方法

    我的应用程序经过设置 以便在首次使用时 它会从基于 Web 的 xml 源下载所需的数据 用户还可以选择通过设置定期刷新数据 当他们这样做时 我想删除现有数据库 然后通过我用于第一次加载的代码重新创建它 我读到 简单地删除数据库并不是执行此
  • Android 中的 MD5 哈希

    我有一个简单的 Android 客户端 需要与一个简单的 C HTTP 侦听器 对话 我想通过在 POST 请求中传递用户名 密码来提供基本级别的身份验证 MD5 哈希在 C 中是微不足道的 并且为我的需求提供了足够的安全性 但我似乎无法找