小编e-s*_*shi的帖子

Windows和连续扇区上的文件

有没有办法保证Windows上的文件(使用NTFS文件系统)将使用硬盘上的连续扇区?换句话说,文件的第一个块将存储在某个扇区中,文件的第二个块将存储在下一个扇区中,依此类推.

我应该补充一点,我希望能够以编程方式创建此文件,因此我不想让用户在创建此文件后对其硬盘进行碎片整理.如果有一种方法可以通过编程方式对我创建的文件进行碎片整理,那么也可以.

windows filesystems

4
推荐指数
1
解决办法
887
查看次数

BouncyCastle ECDH密钥协议失败

我使用BouncyCastle API实现了Elliptic Curve Diffie Hellman加密.但是,关键协议似乎并没有正常运作.它打印错误.

我哪里做错了?谢谢.

ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("B-571");

    KeyPairGenerator g = KeyPairGenerator.getInstance("ECDH", "BC");

    g.initialize(ecSpec, new SecureRandom());

    KeyPair aKeyPair = g.generateKeyPair();

    KeyAgreement aKeyAgree = KeyAgreement.getInstance("ECDH", "BC");

    aKeyAgree.init(aKeyPair.getPrivate());

     KeyPair bKeyPair = g.generateKeyPair();

    KeyAgreement bKeyAgree = KeyAgreement.getInstance("ECDH", "BC");

    bKeyAgree.init(bKeyPair.getPrivate());

    //
    // agreement
    //
    aKeyAgree.doPhase(bKeyPair.getPublic(), true);
    bKeyAgree.doPhase(aKeyPair.getPublic(), true);

    byte[] aSecret = aKeyAgree.generateSecret();
    byte[] bSecret = bKeyAgree.generateSecret();

    System.out.println(aSecret);
    System.out.println(bSecret);
    if (aSecret.equals(bSecret)){
        return true;
    } else { return false; }
Run Code Online (Sandbox Code Playgroud)

java bouncycastle

4
推荐指数
1
解决办法
4080
查看次数

C++日志框架是否牺牲了可重用性?

在C++中,没有事实上的标准日志记录工具.根据我的经验,商店自己动手.但是,在尝试创建可重用的软件组件时,这会产生一些问题.如果系统中的所有内容都依赖于日志记录组件,这会使软件不再可重用,基本上迫使任何下游项目将您的日志记录框架与他们真正想要的组件一起使用.

IOC(依赖注入)并不能真正帮助解决问题,因为组件需要依赖于日志记录抽象.记录组件本身可以添加对文件I/O,触发机制和其他可能不需要的依赖项的依赖性.

向专有日志记录框架添加依赖项是否会牺牲组件的可重用性?

c++ logging code-reuse

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

选择桌面数据库

我正在寻找一个桌面/嵌入式数据库.我正在关注的两个候选人是Microsoft SQL Server CE和Oracle Lite.如果有人使用这两种产品,那么如果你能比较它们就会很棒.我无法在网上找到任何比较.

后端DB是Oracle10g.

更新:澄清,业务需求是具有脱机功能的客户端 - 服务器应用程序(因此需要客户端上的本地数据存储)

database oracle sql-server-ce

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

在Rails中别名化命名空间路由

给出以下routes.rb文件:

# Add Admin section routes
 map.namespace :admin do |admin|
   admin.resources :admin_users
   admin.resources :admin_user_sessions, :as => :sessions
   admin.resources :dashboard

   # Authentication Elements
   admin.login '/login',  :controller => 'admin_user_sessions', :action => 'new'    
   admin.logout '/logout', :controller => 'admin_user_sessions', :action => 'destroy'

   # Default is login page for admin_users
   admin.root :controller => 'admin_user_sessions', :action => 'new'
end
Run Code Online (Sandbox Code Playgroud)

是否可以将"admin"部分别名为别名,而无需更改应用程序中的每个重定向和link_to?主要原因是我希望能够在运行中配置它,并希望它也不易猜测.

ruby routing namespaces ruby-on-rails

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

如何以二进制安全的方式从多字节PHP字符串变量中获取单字节?

让我们说(为简单起见),我有一个多字节,UTF-8编码的字符串变量,带有3个字母(由4个字节组成):

$original = 'Fön';
Run Code Online (Sandbox Code Playgroud)

由于是UTF-8,因此字节的十六进制值为(不包括BOM):

46 C3 B6 6E
Run Code Online (Sandbox Code Playgroud)

由于$original变量是用户定义的,因此我需要处理两件事:

  1. 获取字符串中使用的确切字节数(不是UTF-8字符),并
  2. 一种访问每个单独字节(不是UTF-8字符)的方法。

我倾向于使用strlen()处理“ 1”的方法,并使用如下所示$original的简单方法访问变量的字节`$original[$byteposition]

<?php
header('Content-Type: text/html; charset=UTF-8');

$original = 'Fön';
$totalbytes = strlen($original);
for($byteposition = 0; $byteposition < $totalbytes; $byteposition++)
{
    $currentbyte = $original[$byteposition];

    /*
        Doesn't work since var_dump shows 3 bytes.
    */
    var_dump($currentbyte);

    /*
        Fails too since "ord" only works on ASCII chars.
        It returns "46 F6 6E"
    */
    printf("%02X", ord($currentbyte));
    echo('<br>');
}

exit();
?>
Run Code Online (Sandbox Code Playgroud)

这证明我的最初想法不起作用:

  1. var_dump显示3个字节
  2. printf也会失败,因为“ ord”仅适用于ASCII字符

如何以二进制安全的方式从多字节PHP字符串变量中获取单字节? …

php byte bytearray utf-8 multibyte

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

使用secp256r1曲线和SHA256算法生成ECDSA签名 - BouncyCastle

我正在尝试使用带有secp256r1曲线(P256)的ECDSA和用于消息散列的SHA256算法生成签名.我也在使用Bouncy Castle图书馆.代码如下,

public class MyTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        new MyTest().getSign();
    }

    void getSign() {
        // Get the instance of the Key Generator with "EC" algorithm

        try {
            KeyPairGenerator g = KeyPairGenerator.getInstance("EC");
            ECGenParameterSpec kpgparams = new ECGenParameterSpec("secp256r1");
            g.initialize(kpgparams);

            KeyPair pair = g.generateKeyPair();
            // Instance of signature class with SHA256withECDSA algorithm
            Signature ecdsaSign = Signature.getInstance("SHA256withECDSA");
            ecdsaSign.initSign(pair.getPrivate());

            System.out.println("Private Keys is::" + pair.getPrivate());
            System.out.println("Public Keys is::" + pair.getPublic());

            String msg = "text ecdsa with sha256";//getSHA256(msg) …
Run Code Online (Sandbox Code Playgroud)

java bouncycastle sha256 ecdsa

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

我们是否需要为Appium手动启动Android模拟器?

我是appium的新手,我正在使用以下代码运行计算器示例测试:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName","AndroidTestDevice");
capabilities.setCapability("platformName","Android");    
capabilities.setCapability("appPackage", "com.android.calculator2");       
capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
driver = new RemoteWebDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
Run Code Online (Sandbox Code Playgroud)

正如您在以下屏幕截图中看到的那样,Appium正在运行:

在此输入图像描述

如果模拟器未运行,则会收到与未找到设备相关的错误.我的问题是:

每次需要执行测试时,是否需要手动启动模拟器?或者appium会在执行测试时启动android模拟器吗?

在此输入图像描述

java selenium android appium

3
推荐指数
2
解决办法
6467
查看次数

如何通过openId获取登录凭据?

如果用户通过OpenId登录,是否可以获取登录凭证,例如name/id?

openid web-applications

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

我如何计算PHP的microtime本身?

我倾向于使用通常的方法来检查PHP内容的速度.

<?php  
$timer_start = microtime(TRUE);  
/*
    some code here that I want to time 
*/  
$timer_end = microtime(TRUE);  
echo($timer_end - $timer_start);  
exit();  
?>
Run Code Online (Sandbox Code Playgroud)

我如何计算PHP的微量时间函数本身的两次调用所花费的时间?

php performance timer

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