我正在编写一个小型ruby程序,用于在OAuth上使用Twitter,并且还没有找到正确的方法来执行HMAC-SHA1签名.到目前为止,我搞砸了
Base64.encode64(OpenSSL::HMAC.hexdigest(digest, key, stuff)).chomp
Run Code Online (Sandbox Code Playgroud)
但这会输出Twitter拒绝的内容,而不是有效的签名.我实际上以更糟糕的方式解决了它,请尽量不要打我:
php -r "echo rawurlencode(base64_encode(hash_hmac('sha1', '#{@signature}', '#{llave}', true)));"
Run Code Online (Sandbox Code Playgroud)
这最后一个实际上有效,我可以四处寻找我的东西.
我想要一些关于如何在不回复PHP的情况下实际执行此操作的提示.当我试图学习一门语言时,我不是很喜欢图书馆,所以宝石几乎是不可能的.
谢谢!
我正在与Ruby,PHP和NodeJS并行进行以下代码的比较,使用该crypto模块在NodeJS中获得不正确的响应.
PHP
hash_hmac('sha256', 'text', 'á');
Run Code Online (Sandbox Code Playgroud)
红宝石
OpenSSL::HMAC.hexdigest('sha256', 'á', 'text')
Run Code Online (Sandbox Code Playgroud)
的NodeJS
var signer = crypto.createHmac('sha256', 'á');
var expected = signer.update("text").digest('hex');
Run Code Online (Sandbox Code Playgroud)
Ruby和PHP都返回34b3ba4ea7e8ff214f2f36b31c6a6d88cfbf542e0ae3b98ba6c0203330c9f55b,而NodeJS返回7dc85acba66d21e4394be4f8ead2a327c9f1adc64a99c710c98f60c425bd7411.我注意到,如果我utf8_encode('á')在PHP中尝试,它实际上给了我Node期望的结果.
我正在从文件中加载Node中的重音文本,如下所示:
JSON.parse(fs.readFileSync('keys.js', 'utf8'));
Run Code Online (Sandbox Code Playgroud)
我将如何在Node中更改我的代码以获得PHP和Ruby都存在的结果哈希?
谢谢!
我正在寻找一种git-commit等待标准输入的方法.我正在编写这个PHP,因为我的bash技能是不存在的,所以我会做一个常规的
<?php
$input = trim(fgets(STDIN));
fscanf(STDIN, "%d\n", $line);
?>
Run Code Online (Sandbox Code Playgroud)
会做的伎俩,等到我写东西继续,但它只是继续执行我的PHP脚本无论如何.
这背后的想法是,在我标记一个版本后,git将推HEAD送到测试网络服务器,发送几条推文,让我在CHANGELOG中写一些关于发布的细节.
虽然我可以实现对文件的写入(使用exec('mate -w')),但我希望它能在我对服务器进行快速测试之前保持不变.如果我发现任何错误(懒惰,我知道),这将使我能够回滚.
谢谢你的帮助!
使用HTML5分块,我可以用较小的片段进行文件上传.但问题开始时,它开始使用多个http POST请求,这将导致计算机减速,或可能崩溃.反正有没有在一个http请求下分割文件..所以,如果我有5个文件,它将只有5个http请求,尽管我使用html5拆分块
例如:如果我上传5个文件,每个文件将被拆分为1mb块,所以如果第一个文件是10mb,那么它将变成10个1mb块.问题是,每个块将在1个http请求下,所以只有第一个文件它将是10个HTTP请求.想象一下,如果我有1GB文件,它将成为1000 HTTP请求并减慢计算机速度.
这是示例代码:
//Prepare element progress after the page load completely
var uploaders = [];
var totalChunks = 0;
var progress;
var bars;
$(document).ready(function() {
//progress = document.querySelector('progress');
//bars = document.querySelector('#bars');
});
//function for after the button is clicked, slice the file
//and call upload function
function sendRequest() {
//clean the screen
//bars.innerHTML = '';
var file = document.getElementById('fileToUpload');
for(var i = 0; i < file.files.length; i++) {
var blob = file.files[i];
var originalFileName = blob.name;
var filePart …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在PHP中构建CardDAV服务器的方法.这是一个小型开发,希望我的公司能够与多种设备共享联系人,由自定义后端/ CRM提供服务.
我已经开始玩了,试图理解协议但最终混淆了两次.然后我阅读了IETF草案,但发现我甚至不了解WebDAV本身的基础知识.
你会以哪种方式推荐我开始学习CardDAV,WebDAV和一切相关的东西?
我在找到MKAnnotationView异步请求完成后更新自定义映像的方法时遇到问题,并提供有关注释状态的信息.到目前为止,我有这个:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *identifier = @"EstacionEB";
if ([annotation isKindOfClass:[EstacionEB class]]) {
EstacionEB *location = (EstacionEB *) annotation;
CustomPin *annotationView = (CustomPin *) [_mapita dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView == nil) {
annotationView = [[CustomPin alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
} else {
annotationView.annotation = annotation;
}
UIImage * image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png", [location elStatus]]];
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
annotationView.image = image;
NSDictionary *temp = [[NSDictionary alloc]
initWithObjects:[NSArray arrayWithObjects:annotationView, location, nil]
forKeys:[NSArray arrayWithObjects:@"view", …Run Code Online (Sandbox Code Playgroud) 我正在编写一个简单的Sinatra应用程序,但是在读取文件时<input type="file" multiple />没有让Rack抛出一些问题NoMethodError: undefined method 'bytesize' for (Hash).
表单的写法如下:
<form action="/upload" enctype="multipart/form-data" method="post">
<input type="file" name="images[]" multiple />
</form>
Run Code Online (Sandbox Code Playgroud)
但是,在我的任何代码执行之前,接收端会抛出上述错误,也就是说,Rack没有正确解析input[name=images].我发送的表格不正确吗?如果我放下括号[],那么只发送最后一个文件(很多),但我觉得我可能会遗漏一些东西......
只是为了澄清:这是Sinatra v1.4.3和Rack v1.5.2,后者是抛出异常的那个.在这里完全回溯.
我在用PHP编写的Web应用程序中有几个表,我想知道这是不是很好的实践.
CREATE TABLE `products`(
`product_id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`variations` varchar(255) default NULL,
PRIMARY KEY (`product_id`)
)
CREATE TABLE `variations`(
`variation_id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`kind` varchar(255) default NULL,
PRIMARY KEY (`variation_id`)
)
Run Code Online (Sandbox Code Playgroud)
例如,产品将是:
1,'Cup','1,2,3'
Run Code Online (Sandbox Code Playgroud)
虽然变化将是:
1,'Green','Color'
2,'Glass','Texture'
3,'Blue','Color'
Run Code Online (Sandbox Code Playgroud)
这样许多产品可以具有相同的颜色/纹理.我发现的问题是我无法将其放入将返回数据的单个查询中:
1,'Cup','1,Green,Color-2,Glass,Texture-3,Blue,Color'
Run Code Online (Sandbox Code Playgroud)
然后相应地解析它以显示每个变体的图像.
存储函数是否返回该格式是最好的主意?或者我应该进一步规范化,如果是这样,怎么样?
php ×3
file-upload ×2
ruby ×2
cocoa-touch ×1
cryptography ×1
git ×1
hmac ×1
hook ×1
html5 ×1
http ×1
ios4 ×1
javascript ×1
mapkit ×1
mkannotation ×1
mysql ×1
node.js ×1
recursion ×1
set ×1
sha1 ×1
sinatra ×1
stdin ×1
webdav ×1