Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Protable and encrypted

Status
Not open for further replies.

ameedoo3000

IS-IT--Management
Sep 20, 2016
233
EG
hi
how can i make a Protable project with encrypted tables that enabled to modifed !
Is it possible ?
 
Yes, you can, but you will end up with an extremely slooooooooow application. A much better solution is to skip DBFs and use for instance MS SQL server instead, then your data is as protected as you define it to be.
 
but MS SQL server database should be in the server In order to be protected . and I want a protable application . How can this be ?!
 
Not sure what you mean by portable, but why not use something like Cryptainer to encrypt your data and application.

That's portable on a memory stick or similar.

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
There's no such word as protable, but I guess you want to protect the data.

To protect the data, you have ONLY two choices. One is to encrypt data which also means to give up every hope of getting a quick application. DBF + encryption is like having a Ferrari and only the first gear.

The other choice is to use a "real" SQL server, like MS SQL server. But you are wrong in assuming that you need a separate server, you don't. I run MS SQL server on my laptop without any problems.
 
in first case if i encryption fox pro tables i did not have modified the tables after Building the project

Is it in the second case is it possible to use the SQL Server database and be separate from server(be in the same project's folder) such as Fox Pro tables and I can copy this work to another device that does not have MS SQL server and works without any problems ?
 
Do you want "Protected" (such as encrypted) or "Portable" (such as moveable)?

Many (most ??) Portable applications use calls to Web Services hosted on a stationary server where the requested data can be retrieved and passed back to the Portable application (I do that with Android apps).
It is a lot better approach than having to carry around all of the data within a portable device and somehow manage data updates, etc. And with the data on a stationary server it can be M$ SQL Server or anything else.

If you just want "Protected" data, then you should follow the advice above and use M$ SQL Server.

Good Luck,
JRB-Bldr




 
Using SQL server is a "one way street", meaning that you must have MS SQL installed on every installation. Note that you can download free versions of MS SQL server, and AFAIK the installation can be automated. Unfortunately I haven't created such installations myself, so I can't provide any details.
 
yes i mean Portable (such as moveable) and Not Connected with server and At the same time it is at least encrypted and It can modified the tables after Building the project .
 
Encrypt using Cryptainer from someone like Cypherix and pop your app and data in a virtual drive and away you go.

Pretty portable and fairly safe and not hard to install in most cases.

Regards

Griff
Keep [Smile]ing

There are 10 kinds of people in the world, those who understand binary and those who don't.

I'm trying to cut down on the use of shrieks (exclamation marks), I'm told they are !good for you.
 
I don't know why you're still asking. We went through many thoughts in thread184-1770344 and came to the conclusion SQL Server is a best practice for that. Nothing has changed since then, has it?

Any source of encrypted data you load decrypted to display/edit will be "compromised" at that moment in memory, what you can protect is the data on hdd. So it's safe when your device is stolen off, a thief only gets the hardware, not your content. In conjunction with never leaving your device unlocked (in the sense of your Windows session not being opened) you are having a good level of data protection that way.

The hdd encryption can be done in several ways. One simplest way is Windows built in bitlocker. It's very obvious this unlocks hdd for any process after login, though, not only for your software. The bitlocker decryption for the OS drive must unlock itself at start. You can bitlock protect a secondary partition and only unlock it via password when you need file access. That's also true for the containers Griff mentions, like Veracrypt. Still when unlocked, this is unlocked for any process, not only your software.

SQL Server is the only option really safeguarding the data for any connection made to it by any process. It doesn't unlock the encrypted mdf/ldf files for any read access to it like Bitloacker or "Cryptainers" do, SQL Servers service process remains the only decrypting the data from the data files and only answers request from connections need authentication.

Tore said you can use SQL on notebbooks, I agree. What type of devices do you aim for? It cannot really be phones, or you are in the wrong forum and will need other programming languages to write such a tool. VFPs runtime does not run on Windows Phone. It's platform is not having the necessary Win32 API the VFP runtime is based on. So you can only aim for tablets. Best models like MS Surface also run SQL Server, so that still is a viable option and the best choice, simply because of its authentication mechanisms.

Bye, Olaf.
 
Yes, I understand this very well. But my question concerned the establishment of a program for a client and put it on CD for the use on his or her computer, provided that they are used by the data safe without breakthrough
This is exactly my intention
I know the benefits of SQL well. But the use of these databases will come or not desired Balentjh ?
 
Could you reformulate?

Taken the info I do understand: Software on a CD. Well you can only read from a CD. You can have a predefined decryption for the encrypted CD data, but surely no write back to it. So a CD can only be a setup CD, not the installation. And we're back to installing SQL Server etc.

Bye, Olaf.
 
ameedoo3000 said:
yes i mean Portable (such as moveable)

There is "Portable" in that someone may want to Install the application in a variety of work places.
This does not make the application "portable" - just its Installation is "portable".
But once installed, the application itself is not portable (actually it never was).

And then there is "Portable" where the user needs the ability to run the application from Place A now and later from Place B - perhaps installed on a laptop and moved from one work site to a totally different work site.

And you don't tell us if this 'portable' application will be run by multiple people or run just by one single person.
* If multiple people should all need to get data from common data tables, and/or multiple data gathering results will need to be accumulated for consolidated reporting, etc.
If so then you should definitely consider using a centralized server - perhaps accessing across the web via Web Services.
* If only one single person will ever be running the application, then sure you can keep the data tables local, but why?
Just travelling around with data on a platter-type of disk increases the risk of data table corruption.
And if the data tables were only on the single user's local, portable laptop/workstation, why would you need to encrypt/protect them?

Also:
ameedoo3000 said:
It can modified the tables after Building the project.
In order for the tables to be modifiable, they cannot be built into the Project's EXE file.
Any tables which are built/included into the Project's EXE file will only be READ ONLY.
If you want data tables to be modifiable, they need to be external to the Project's EXE.

And I don't have a clue what you mean when you say:
ameedoo3000 said:
provided that they are used by the data safe without breakthrough

LASTLY and Very Important
ameedoo3000 said:
establishment of a program for a client and put it on CD for the use on his or her computer
Olaf has already addressed this, but I am not sure you and/or your client understands this.
A CD can only hold READ ONLY information.
You cannot put data tables on it and expect to be able to update them with new information.
You can INSTALL an application from CD onto his or her computer, but once installed, the application itself is NOT Portable.
And, once you INSTALL it, if there are multiple users, the data tables will typically need to be installed onto a centralized server of some sort within their organization so that the multiple users can ALL access them.

There are just too many un-answered details about what you want for us to be able to give you one simple answer.

Good Luck,
JRB-Bldr
 
Dear friends
Thank you all for your patience with me and to clarify points that cut them in Vglh
I finally convinced the responses to the presence of very .etdhir simple mistakes in arranging ideas.
Really does not make sense for the protection or encryption if the program on your computer to the customer
In case if the program requires a network team it is better to use MS SQL Server and there is a data communication with him.
Yes, this is a summary convinced of it finally.
Thank you very much and please excuse me for your Stress and fatigue.
 
Just to point out once more, what Tore also said: MSSQL Server can also be installed local.

You can use it even on notebooks and todays tablets. I bet the compact SQL Server also runs on phones, but it will not support the encryption features. Edit: wrong, it does (see
But anyway: No, you don't need a network team. SQL Express would suffice for most single user applications, allows more and performs better and since VFP needs a full API, phones are out anyway.

You want a single device, single user application, so you don't want network nor server side data, but you can also feed a local application with a databse in the internet, eg in Azure. That would be a solution if you need centralized data, the requirement of installation and usage then only is internet access, and the database stays in your full control. Data of users can be separated, that's called multi-client or muli-tenant capability and is solved with a clientid/tenantid in every record of every table. An internet database also has the one big advanatage, you keep your whole data to yourself, you allow connections to it and can control which queries are done to it. And of course a next step would be havnig the whole appplication in the cloud instead of a device. Anyway, as you rather like it to be distributed and used from a CD, that indicates you want to work on offline single clients. That'll need a local database, but to close the circle, that does not exclude SQL Server.

Bye, Olaf.
 
yes i already use MS SQL Server Express on my PC and every thing fine now.
Fruitful ideas.
thank you very very much ...
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top