小编Ric*_*ard的帖子

3D触控快捷键:加载其他网址

我已经实现了三个3D触摸动作,让它们命名app.touch1,app.touch2然后app.touch3.

这是我AppDelegate文件中的代码:

func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
    if(shortcutItem.type == "app.touch1"){
        MyVariables.url = "https://google.de/";
    } else if(shortcutItem.type == "app.touch2") {
        MyVariables.url = "https://yahoo.de/";
    } else if(shortcutItem.type == "app.touch3") {
        MyVariables.url = "https://bing.de/";
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我MyVariables现在的课程:

struct MyVariables {
    static var url = "https://test.de/"
}
Run Code Online (Sandbox Code Playgroud)

这是我ViewController班级的代码:

IBOutlet var containerView : UIView?
var webView: UIWebView?
var loadedURL: String?

override func prefersStatusBarHidden() -> Bool {
    return …
Run Code Online (Sandbox Code Playgroud)

ios swift

6
推荐指数
1
解决办法
515
查看次数

仅在文件不存在时才使用代理

我尝试通过Apache代理将访问者传递给界面.这有效.为了定制界面(CSS,图像等),我们希望我们可以覆盖远程服务器上的文件.这是我们的代码:

RewriteEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) https://.../$1 [P,L]
Run Code Online (Sandbox Code Playgroud)

在Apache的文档根目录中,例如有一个css/style.css.但是在Web浏览器中请求它,它显示通过代理获取的站点的版本.我们尝试了几件事没有成功.

谢谢!

apache .htaccess proxy

6
推荐指数
1
解决办法
691
查看次数

strtotime:检查时间

我有一个凭证系统,我可以用时间输入日期或日期.应该允许所有有效格式,例如:

  • 2016年1月1日
  • 01.01.2016 00:00:00

如果我有代金券的开始日期,我没问题,但如果我有结束日期,这是一个问题.我strtotime用来将用户输入转换为UNIX时间戳.

如果您只输入日期作为结束日期,则应该是使用日期的结束日期.像这样:

01.01.2016 -> 01.01.2016 23:59:59 -> 1451689199
Run Code Online (Sandbox Code Playgroud)

但是 - 这是我的问题 - strtotime当然为01.01.2016和返回相同的时间戳01.01.2016 00:00:00.当用户输入时,当然应该使用这个时间.

01.01.2016
1451602800
-> should go to 1451689199

01.01.2016 00:00:00
1451602800
-> is correct

01.01.2016 23:59:59
1451689199
-> is correct
Run Code Online (Sandbox Code Playgroud)

我需要有可能检查字符串 - 由strtotime- 转换- 是否有时间显式.我搜索了一个没有成功的函数,即使是DateTime类没有这方法(hasTime()或类似的东西).

正如我之前所说,strtotime此功能也应支持所有日期/时间格式支持.

这个问题不重复!我想检查是否有明确指定的时间.应该是重复的问题是PHP初学者的基本问题,与此问题完全无关!

php date strtotime

5
推荐指数
1
解决办法
1794
查看次数

PHP中的HMAC-SHA-256

我必须从这个字符串构建一个autorisation哈希:

kki98hkl-u5d0-w96i-62dp-xpmr6xlvfnjz:20151110171858:b2c13532-3416-47d9-8592-a541c208f755:hKSeRD98BHngrNa51Q2IgAXtoZ8oYebgY4vQHEYjlmzN9KSbAVTRvQkUPsjOGu4F
Run Code Online (Sandbox Code Playgroud)

此秘密用于HMAC哈希函数:

LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
Run Code Online (Sandbox Code Playgroud)

我必须生成的autorisation哈希是这样的:

P-WgZ8CqV51aI-3TncZj5CpSZh98PjZTYxrvxkmQYmI=
Run Code Online (Sandbox Code Playgroud)

有一些事情要照顾:

  1. 签名必须使用RFC 2104中规定的HMAC-SHA-256构建.
  2. 签名必须使用RFC 4648第5节(安全字母表)中指定的Base64 URL兼容进行编码.

还有一些给代的伪代码:

Signatur(Request) = new String(encodeBase64URLCompatible(HMAC-SHA-256(getBytes(Z, "UTF-8"), decodeBase64URLCompatible(getBytes(S, "UTF-8")))), "UTF-8")
Run Code Online (Sandbox Code Playgroud)

我在PHP中尝试过各种各样的东西,但还没有找到正确的算法.这是我现在的代码:

if(!function_exists('base64url_encode')){
    function base64url_encode($data) {
        $data = str_replace(array('+', '/'), array('-', '_'), base64_encode($data));
        return $data;
    }
}

$str = "kki98hkl-u5d0-w96i-62dp-xpmr6xlvfnjz:20151110171858:b2c13532-3416-47d9-8592-a541c208f755:hKSeRD98BHngrNa51Q2IgAXtoZ8oYebgY4vQHEYjlmzN9KSbAVTRvQkUPsjOGu4F";
$sec = "LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=";
$signature = mhash(MHASH_SHA256, $str, $sec);
$signature = base64url_encode($signature);

if($signature != "P-WgZ8CqV51aI-3TncZj5CpSZh98PjZTYxrvxkmQYmI=")
    echo "wrong: $signature";
else
    echo "correct";
Run Code Online (Sandbox Code Playgroud)

它给出了这个签名:

K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
Run Code Online (Sandbox Code Playgroud)

如您所见,44个字符的长度是正确的.请帮助我找到错误,这个简单的问题花了我几个小时,没有解决方案.

php hmac

5
推荐指数
2
解决办法
1万
查看次数

在PHP中生成RSA私有SSH密钥

我用PHP OpenSSL生成了一个SSH密钥:

$rsaKey = openssl_pkey_new(array( 
    'private_key_bits' => 4096,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
));
$privKey = openssl_pkey_get_private($rsaKey); 
openssl_pkey_export($privKey, $pem);
Run Code Online (Sandbox Code Playgroud)

结果$pem如下:

-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC8ggt6rVHYnqNP
...
e95+EXbPc6THyWt9pgwOsJltpylIYG4=
-----END PRIVATE KEY-----

但我无法使用此密钥进行身份验证.在我可以使用之前,我必须使用以下命令进行转换:

openssl rsa -in xxx.key -outform pem > xxx.key2
Run Code Online (Sandbox Code Playgroud)

转换的结果是:

-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEAvIILeq1R2J6jT+xjlK5NrOqFZTOJ4PByvgPQNbb2Kp7c3W15
...
o1t2KBkaSoR+JyOPOZakq5BLv8lgD3vefhF2z3Okx8lrfaYMDrCZbacpSGBu
-----END RSA PRIVATE KEY-----

两者都是PEM格式,但第二种是RSA私钥.第二,PHP可以登录.所以我需要一个开头的键RSA PRIVATE KEY,而不仅仅是PRIVATE KEY.如何使用PHP和OpenSSL PHP实现创建它?

php ssh openssl rsa private-key

3
推荐指数
1
解决办法
4358
查看次数

标签 统计

php ×3

.htaccess ×1

apache ×1

date ×1

hmac ×1

ios ×1

openssl ×1

private-key ×1

proxy ×1

rsa ×1

ssh ×1

strtotime ×1

swift ×1