问题标签 [pepper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
proxy - NAO Robot (Choregraphe) ALProxy Error
When I am using Choregraphe for NAO Robot's 3D/Computer-Generated view (the simulation) I get an error with the Record Video and Speech Recognition functions.
The errors are:
and
Picture of Choregraphe View
tablet - 在索引中找不到服务“ALTabletService”
我在使用 Pepper 平板电脑时遇到问题。我正在尝试使用该show app
框将 index.html 显示到平板电脑。我只在应用程序show app
中制作了一个root
方框图。
运行应用程序时出现错误:
[错误] behavior.box: _getTabletService: 24 _Behavior__lastUploadedChoregrapheBehavior544669552: / init_8 / Show App_2:
Can not find service 'ALTabletService' in index
此外,我还收到以下警告:
[WARN] behavior.box: onInput_onStart: 45 _Behavior__lastUploadedChoregrapheBehavior544669552: /init_8 / Show App_2:
找不到平板电脑服务,因此无法设置应用程序:.lastUploadedChoregrapheBehavior
开发环境如下。
- 型号名称:MacBook Pro
- 操作系统:埃尔卡皮坦 10.11.5
- 处理器名称:英特尔酷睿 i5 2.6 GHz
- 内存:16 GB
- 显卡:英特尔 Iris 1536MB
- 编舞:2.4.3.28
- 胡椒:2.4.3.28
请回答。
ibm-watson - 使用 IBM 的机器人 Pepper with Watson
我在新闻中看到了这个项目,但我找不到实际状态:是否已经可以使用机器人 Pepper with Watson (IBM)。如果是,我们需要什么才能将 Watson 与 Pepper 一起使用。我们可以自己做吗?是否有一个很好的教程来入门该主题或类似的东西?
亲切的问候,珍妮
java - 机器人 SDK 0.9 不完整。请重新下载或重新创建机器人应用程序
我按照https://android.aldebaran.com/doc/installation.html#installation中提到的步骤开始为 SoftBank 的 Pepper 机器人开发应用程序。
我完全按照教程安装了 android studio v2.3、pepper SDK 插件 v0.9.0、Robot SDK 平台 v0.9。但我无法让它工作。启动机器人模拟器时出现错误
机器人 SDK 0.9 不完整。请重新下载或重新创建机器人应用程序。
这里有没有人使用过胡椒 SDK 或者知道为什么会这样?
javascript - Pepper 1.8 平板电脑上的过度缩放图形是否有修复?
使用新的 Pepper 1.8 平板电脑,由于图像缩放错误,图形被裁剪。我可以在本地纠正这个问题,还是个别应用程序开发人员必须为此修复他们的应用程序?
除了手动扩充脚本:
html - nao/pepper 软银 html
嗨,我有软银的辣椒
而且我不知道如何将字符串从辣椒行为发送到 HTML 页面。现在有谁知道 wat API 或胡椒可以将字符串发送到在胡椒平板电脑上显示的 HTML 页面的什么方法。
HTML 处于辣椒行为中,并且正在运行在辣椒行为的平板电脑上,只需发送一串信息,辣椒上的 HTML 页面需要捕获它
html脚本
php - 了解 password_hash 和 BCRYPT
密码学
最近我对密码学做了很多研究。它让我发现,我们不仅有盐,还有胡椒(是的,我真的只是刚刚发现了胡椒)。
散列密码
这一切都始于我继承了一个未对密码进行哈希处理的项目。即使作为n00b,我也知道这很愚蠢。
我对哈希有基本的了解,但我所知道的显然已经过时了。
原始解决方案
我最初的哈希和盐是通过以下方式实现的:
- 获取用户密码
- 将其与盐混合
- 散列它使用
MD5
- 将盐和哈希都存储在表中
这效果很好,但我倾向于使用更好的技术
新技术
我想尝试的新方法是使用 PHP 的password_hash和password_verify。
创建了一个快速测试后,我可以看到我可以password_verify
在给定的哈希上返回一个真值。令我困惑的一件事是盐是从哪里来的?
在文档中,我可以看到有一个选项可以在选项数组中指定盐,但从 PHP 7.0 开始不推荐使用。
我的尝试
我创建了一些代码(未经测试)只是为了演示。请参见下面的代码。
register
功能
这两个功能都是非常基本的,因为我只是想说明一点。
这个函数需要一些参数(在这种情况下username
,password
并将它们添加到数据库中。
现在,我知道如何将我的胡椒添加到密码中,因为这是一个简单的连接,但是盐是随机生成的,但从未返回,这意味着我不知道这是什么。
login
功能
同样,它的作用非常基本。
由于我以前没有使用password_verify
过,我不完全确定我知道获取用户密码的最佳方法。
使用我的旧登录脚本,它们看起来像这样:
我只是散列密码并将其作为参数传递给 SQL 查询。
使用 bcrypt 我必须从表中提取密码,然后在另一个查询中使用它。(至少这是我认为我目前必须做的)。
最后是问题部分
免责声明
如果我因缺乏知识和/或对我的知识的解释不佳而冒犯了任何人,我深表歉意。
你的帮助
我渴望知识。所以我不知道的,我想知道。(显然在某种程度上,我喜欢学习计算机、系统和编程等)。
如今,密码散列是必不可少的,正确使用它非常重要,这就是我写这篇论文问题的原因。
问题)
- 我对 bcrypt 的理解正确吗?
- 它真的不储存盐吗?
login
在我的and的基本示例中register
,我是否实现了password_hash
andpassword_verify
?
更新 1
在所有评论之后,我只想发布此更新。
如上所述,我喜欢学习,所以当我遇到这个功能时,我开始感到困惑,因为我不知道发生了什么。
我将发布一些示例,以尝试有效地将我的困惑传达给每个人。
让我们以这个脚本为例:
在这个例子中,我了解散列是如何工作的。
我用盐存储密码并对其进行哈希处理。然后我用盐检查发布的密码并对其进行哈希处理。如果两者匹配,则我登录成功,否则登录失败。
现在,让我们看下面的例子。
混乱
我在跑步时开始感到困惑password_verify
。
我知道默认情况下会处理 salt password_hash
,但在第一个示例中,我知道 salt,因此我可以使用发布的密码执行哈希,以检查它们是否匹配。
那么,为什么password_verify
在我没有给它加盐的情况下成功地验证了发布的密码呢?
当然,盐的设计目的是使每个密码都独一无二,但不知何故password_verify
会成功。我曾经var_dump
转储由它生成的哈希值password_hash
,它会在刷新时发生变化。这确实是混乱的来源。如果"test"
每次刷新的哈希值都可以更改为不同的哈希值,那么如何password_verify
知道发布的密码是否正确?
我知道我可以编写一个函数来验证用户的密码。我真正想知道的是 PHP 如何每次都password_verify
能够验证true
,尽管我的哈希值会随着每次刷新而改变。
注意:我知道我会将密码存储在数据库中,因此刷新不会成为问题,但我这样做是为了尝试了解该功能。
注释
@RiggsFolly 我知道盐已经为我做好了。问题是“验证函数如何知道哈希函数中创建的随机盐以验证为真?”
@RiggsFolly 我知道盐选项已被弃用。如果不是(并且我能够通过它传递盐),我想我会更多地理解这个功能。验证函数在不知道盐的情况下成功验证密码的整个想法实际上让我大吃一惊。
也许我只是愚蠢。
@Alex Howansky 盐是如何归还的?诸如此类的字符串$hash = $2y$10$Vaj4ZonpRJjE6kmfQffvOOeIVW3ZV31JJYVY79GtZ3GtioZKtDwku
没有任何意义,但以某种方式password_verify("test", $hash")
返回true
。
@Machavity 阅读链接后,我可以看到盐位于散列的开头,但是盐怎么会出现在最终散列中?我为我的困惑和明显的愚蠢道歉,但我只是想了解密码散列,以便为将来的使用做好更好的准备。
@Fred -ii- 这些自定义函数对于示例来说很简单(我不想链接整个代码页面)。话虽如此,我当前的用法是在一个名为 的自定义类User
中,其中我有一个private
名为的变量$conn
来存储mysqli
连接。然后我用它$this->conn->prepare("SELECT * FROM ...")
来访问数据库。
这对范围界定不利吗?在自定义类中存储连接的首选方法是什么?
algorithm - 2017年密码存储
所以我正在使用我的登录系统在我自己的网站上工作。我正在研究密码存储部分,并且一直在观看一些 youtube 视频,人们告诉我不要使用 md5 之类的东西,因为它已经过时了。
我看了汤姆斯科特制作的关于如何不存储密码的视频,他告诉我们查看最近的教程,了解如何正确存储密码。
对于我的项目,我真的需要自己存储密码,而不是使用 Facebook 或 Google 之类的东西进行登录。
我在 Stack Overflow 上查看了很多网站和问题,但似乎从今年以来找不到任何可以解释的东西。
所以现在我想知道 2017 年存储密码的最佳方式是什么?我需要使用盐和胡椒吗?也许还有别的?目前哪种哈希算法最好?如果可能的话,我想在 php.ini 中使用它。
谁能帮我解决这些问题?
谢谢 :)
android-studio-2.2 - Aldebaran's Pepper sdk for android/Robot sdk 0.9 “Robot SDK'0.9' 不完整。请重新下载或重新创建机器人应用程序。”
当尝试按照这个官方教程在我的电脑上安装 Aldebaran 的胡椒机器人的 android sdk 时:
第 1 步:android.aldebaran.com/doc/installation.html
第 2 步:android.aldebaran.com/doc/create_project.html#create-project
尝试在我的计算机上启动 Pepper 平板电脑的虚拟机器人环境时,会打印此消息:“Robot SDK'0.9' is not complete. Please download it or re-create the robot application.”
到目前为止,我已经在我的 Ubuntu 16.04 64 位计算机上尝试了以下操作:
- 通过 android sdk for Pepper 提供的机器人 sdk 管理器卸载并重新下载/安装机器人 sdk
- 卸载并重新下载/安装 Pepper 的 android sdk
- 删除、重新创建和创建 android studio 应用程序,将其变成机器人应用程序
- 删除其他非必要的 android sdk
此外,我还在另一台运行 windows 8.1 64bit 的计算机上尝试了以下操作:
- 重复教程安装
- 下载安装android studio 2.22、2.11等老版本,重复教程安装。
每次我完成第 1 步和第 2 步后,当我想开始构建或启动应用程序时,它都会在本教程的步骤 B 中失败:android.aldebaran.com/doc/run_debug.html#run-debug 并打印上面提到的错误.
项目结构与教程中的相同,我可以通过 maven 同步项目。但由于我无法真正启动虚拟机器人环境或运行应用程序,我无法使用这个 sdk。
我还在stackoverflow上发现了一个类似的问题,但还没有回复。我也看不懂评论。
stackoverflow.com/questions/42824942/robot-sdk-0-9-is-not-complete-please-download-it-again-or-re-create-the-robot-a
我尝试使用另一台新格式化的 windows 10 64bit 计算机,所以我安装了 Java jdk & jre 1.8.0_121 和 android studio 2.3.1,因为我找不到 2.3.3:
- 重复教程安装
但仍然是相同的错误消息。
javascript - Pepper Robot 对话框如何执行 javascript 函数?
我正在开发 Pepper 机器人应用程序。它同时支持音频和平板电脑输入。So when option on tablet is choosed it will use ALDialog to forceinput message to Pepper dialog and then i want Pepper dialog to change pepper tablet view. 我尝试使用 ALMemory,然后使用 javascript 订阅它。但似乎我找不到该事件。例如,如果我在对话框中创建了 $show_index_view=1。那么我如何向它注册该事件,以便它知道在 javascript 中听什么。